Spring Security 完成登陆后一般需要一些自定义的处理,例如,记录登陆日志,初始化用户菜单等等
这里就需要自定义的 登陆成功处理了,Spring 提供了 AuthenticationSuccessHandler 接口,完成这个接口就可以了。 但是,修改到这里处理后,原先系统的自动转向处理就没有了,接口中应该怎么写,才可以保持原来的功能呢?
代码如下:
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication arg2) throws IOException, ServletException { logger.info("Success hanlder"); //这里加入需要的处理 String redirectUrl = "index"; //缺省的登陆成功页面 SavedRequest savedRequest = (SavedRequest) request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST"); if(savedRequest != null) { redirectUrl = savedRequest.getRedirectUrl(); request.getSession().removeAttribute("SPRING_SECURITY_SAVED_REQUEST"); } response.sendRedirect(redirectUrl); }
主要是读取Session中 SPRING_SECURITY_SAVED_REQUEST的值,获得原先的跳转页面。
当然 SecurityConfig 里面这样配置
@EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { // @formatter:off @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() // .antMatchers("/css/**", "/index","/plug-in/**").permitAll() .antMatchers("/user/**","/blank","/ui_colors").hasRole("ADMIN").and().formLogin() .loginPage("/login").failureUrl("/login-error").successHandler(new SimpleLoginSuccessHandler()).and().rememberMe(); } // @formatter:on // @formatter:off @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("admin").password("123456") .roles("ADMIN"); } // @formatter:on }
相关推荐
SpringSecurity自定义登陆页面,当登陆失败后,需要在页面上回显错误信息,但是错误信息又是由SpringSecurity自己封装的,我们如何去获取并且如何将错误信息转换成中文显示在页面上,本资源对其进行了详情的解决,...
spring security spring security 中文文档
Spring Security 演讲PPT(演讲嘉宾:张明星) WebSphere技术专家沙龙在广州圆满举办,WSC超级版主Fastzch(张明星)担任本次沙龙的演讲嘉宾,他给广州的WebSphere技术专家带来了以“Spring Security ”为主题的...
spring security4登陆
Spring Security三份资料,实战Spring Security 3.x.pdf;Spring Security 3.pdf;Spring Security使用手册.pdf
主要介绍了SpringBoot+SpringSecurity处理Ajax登录请求问题,本文给大家介绍的非常不错,具有参考借鉴价值,需要的朋友可以参考下
springsecurity是一个功能强大且高度可定制的身份验证和访问控制框架。springsecurity是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring安全性的真正威力在于它可以很容易地扩展以...
Spring Security in Action
springSecurity也有很多种权限认证方式,本项目主要实现基于接口授权,也就是说通过注解给controller赋予权限,用户只有拥有某个接口的权限才能成功访问这个接口,从而实现不同用户拥有不同访问权限;
Spring Security:spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转...
spring security2.5 jar 和spring security2.5 整合必须的jar包
三更springsecurity学习笔记
该资源是基本Spring Security实战七篇文档中组织的源码,详情如下: ssecurity项目是Spring Security实战(一和二)的源码; ssecurity-db项目是Spring Security实战(三)的源码; ssceurity-page项目是Spring ...
很多独立软件供应商,因为灵活的身份验证模式二选择Spring Security。这样做允许他们快速的集成到他们的终端客户需求的解决方案而不用进行大量工程或者改变客户的环境。如果上面的验证机制不符合你的需求,Spring ...
spring security3 中文版本
Spring Security 3.pdf Spring Security 3.pdf Spring Security 3.pdf Spring Security 3.pdf
SpringSecurity框架的权限认证流程原理,请求到来时SpringSecurity如果调用层层过滤器来完成认证;
SpringSecurity学习总结源代码
Spring Security。 官网 Spring Security API(Spring Security 开发文档).CHM