2016-12-14 140 views
0

我想使用弹簧安全认证和授权...但我有一个问题...登录页面无法正确加载!... 我不知道什么我应该替换“登录”吗?弹簧安全不能正常工作

 http.authorizeRequests() 
       .anyRequest().authenticated() 
       .and() 
       .formLogin() 
       .loginPage("/login") 
       .permitAll(); 

RenderController.java

@Controller 
@RequestMapping("/") 
public class RenderController { 


@Autowired 
private HRMUserService userService; 


@RequestMapping(method = RequestMethod.GET) 
public String getIndexPage() { 
    return "login"; 
} 
@RequestMapping(value = "login", method = RequestMethod.POST) 
    public String login(HttpServletRequest request, @RequestParam String username, @RequestParam String password, 
         @Valid @ModelAttribute("userForm") HRMUser userForm, BindingResult result) { 
     return "index"; 
} 

这个项目是单个页面的Web应用程序,并有两页:指数和登录。 它工作正常不进行认证,授权,但添加这些功能我有问题,loginPage后......当我用loginPage(“/登录”)我得到这个错误:

HTTP状态405 - 请求方法“GET “不支持

当我使用.loginPage( ”/索引“)

HTTP状态404 -

当我使用.loginPage(“/”) 页面加载但css和js无法识别!

+1

能按照配置...你有一个'/ login'但只接受POST请求......还有,为什么你会想自己拦截请求,Spring Security的已经做到这一点。您只需要一个返回视图名称的GET请求。 –

回答

0

您需要使用RequestMethod.GET添加登录页面的映射。类似的东西:

@RequestMapping(value = "login", method = RequestMethod.GET) 
public String getLoginPage() { 
    return "login"; 
} 
+0

我加了这个方法,但是现在css和js不能识别!! – faraa