发现这个问题已经在这放了那么久没人回答,为了方便后面的人,我在这里就完结一下这个问题。
Spring Security 默认action="j_spring_security_check",让很多人不理解这个请求之后会跳转到哪里去,
这里我们就看
配置文件里这个
form-login属性详解
1. login-page 自定义登录页url,默认为/login
2. login-processing-url 登录请求拦截的url,也就是form表单提交时指定的action
3. default-target-url 默认登录成功后跳转的url
4. always-use-default-target 是否总是使用默认的登录成功后跳转url
5. authentication-failure-url 登录失败后跳转的url
6. username-parameter 用户名的请求字段 默认为userName
7. password-parameter 密码的请求字段 默认为password
8. authentication-success-handler-ref 指向一个AuthenticationSuccessHandler用于处理认证成功的请求,不能和default-target-url还有always-use-default-target同时使用
9. authentication-success-forward-url 用于authentication-failure-handler-ref
10. authentication-failure-handler-ref 指向一个AuthenticationFailureHandler用于处理失败的认证请求
11. authentication-failure-forward-url 用于authentication-failure-handler-ref
12. authentication-details-source-ref 指向一个AuthenticationDetailsSource,在认证过滤器中使用
看到第三条属性没?default-target-url这个属性。
在这里我们假设 你登录成功需要调用一个名字叫toMain.do的action处理一些登录后的逻辑,比如SpringMVC或者Struts2,那么你就可以在http这个标签下配置
这样我们就可以在登录成功后调用上面对应的action,关于action返回视图,SpringMVC和Struts2这里我就不多说了。
我来回答这个问题吧,很多人都是复制粘贴的,贼烦!!!
这个其实很简单的,不需要做什么复杂的操作:
我写的是lambda,实现的是AuthenticationEntryPoint接口,你只要写一个该接口的实现类,直接写response.sendRedirect("/login"),这个就是跳到login页的接口url,还可以直接使用另一个方法,直接写登录页地址
好像没遇到过这 个问题。 Spring Security 好像又一个配置文件可配置。