`
guanxi
  • 浏览: 41719 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Security 登陆成功后的处理

 
阅读更多

       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
}

 

0
0
分享到:
评论

相关推荐

    Spring Security 3多用户登录实现一

    Spring Security提供了统一的异常处理机制,如`AccessDeniedException`(访问被拒绝)和`AuthenticationException`(认证失败)。可以通过实现`AccessDeniedHandler`和`AuthenticationEntryPoint`接口来自定义异常...

    spring security 3.1 配置登陆页面

    最后,为了使Spring Security能够处理GET请求的登录页面,你需要在`<http>`配置中添加一个`intercept-url`,允许未认证的用户访问这个页面: ```xml ... *" access="permitAll" /> ... ``` 综上所述,Spring ...

    spring-security多个登录页面配置

    本文将详细介绍如何通过Spring Security配置多个登录页面,并为不同类型的用户设置不同的登录逻辑及登出后的返回界面。这不仅有助于提高系统的安全性,还能优化用户体验。 ### Spring Security简介 Spring ...

    Spring Boot Security 2.5.8 实现账号、手机号、邮件登录,记住密码等功能

    Spring Security提供了UserDetailsService接口来处理用户信息的检索和验证。开发者可以自定义实现该接口,将用户数据存储在数据库或其他持久化层中。 2. **手机号登录**:为了适应移动互联网的需求,Spring ...

    Spring Security权限管理开发手册

    - **登录页面中的参数配置:** 设置登录页面的请求参数,确保Spring Security能够正确处理这些参数。 - **测试一下:** 测试自定义登录页面的功能是否正常。 - **第5章:使用数据库管理资源** - **数据库表结构...

    Spring Security 安全权限管理手册.pdf

    - **8.3.1 后登陆的将先登录的踢出系统** - 讲解如何配置会话策略,使得后来者的登录会导致先前用户的会话失效。 - **8.3.2 后面的用户禁止登陆** - 分析如何配置策略,防止同一账户的重复登录。 **9. 单点登录...

    springmvc4.0+spring-security3.2+mybatis3.3+mysql整合的登陆功能,

    5. **实现登录逻辑**:在Controller中处理登录请求,调用Spring Security进行认证,验证成功后跳转到相应页面。 这个项目对于理解Spring全家桶的集成和Web应用的安全性有着重要的实践价值。通过实际操作,开发者...

    SpringSecurity自定义成功失败处理器的示例代码

    在Spring Security框架中,自定义成功失败处理器是用于定制用户登录认证后的响应行为。默认情况下,Spring Security提供了标准的处理程序来处理用户的登录成功或失败情况,但有时我们需要根据业务需求进行个性化设置...

    1.2 引入SpringSecurity 2. 认证 2.1 登陆校验流程 2.2 原理初探 2.2.1 SpringSecur

    springsecurity1.2 引入SpringSecurity 2. 认证 2.1 登陆校验流程 2.2 原理初探 2.2.1 SpringSecurity完整流程 2.2.2 认证流程详解 2.3 解决问题 2.3.1 思路分析 2.3.2 准备工作 2.3.3 实现 2.3.3.1 数据库校验用户 ...

    SpringBoot集成SpringSecurity和JWT做登陆鉴权的实现

    SpringSecurity是Spring生态系统中的安全框架,负责处理身份验证和授权。在SpringBoot项目中集成SpringSecurity,我们需要配置安全拦截器,定义哪些URL需要进行身份验证,哪些URL是公开的。然后,我们可以设置登录...

    SpringSecurity 3.0.1.RELEASE.CHM

    13.3. 处理后决定 14. 安全对象实现 14.1. AOP联盟 (MethodInvocation) 安全拦截器 14.1.1. 精确的 MethodSecurityIterceptor 配置 14.2. AspectJ (JoinPoint) 安全拦截器 15. 基于表达式的权限控制 15.1. ...

    SpringSecurity4.2 自定义登陆页面,图形验证码,源码

    通过以上步骤,你已经成功地在SpringSecurity 4.2中实现了自定义登录页面和图形验证码。这只是一个基本的实现,实际项目中可能需要根据具体需求进行更多的定制,例如使用session存储验证码、设置验证码过期时间等。...

    spring security oauth2以及jwt实现sso单点登陆的功能

    在本项目中,通过集成Spring Security OAuth2和JWT(JSON Web Token)技术,实现了这样一个功能。下面将详细介绍这两个关键组件及其在SSO中的作用。 1. Spring Security OAuth2: Spring Security 是一个全面的...

    SpringBoot_SpringSecurity:前后端分离登陆拦截设计

    登录成功后,SpringSecurity会生成一个JWT(JSON Web Token)并返回给前端,前端将其存储在本地,用于后续请求的认证。 授权部分,SpringSecurity允许我们通过定义访问控制规则(如`@PreAuthorize`和`@Secured`注解...

    Spring security实现登陆和权限角色控制

    通过以上步骤,你已经配置了Spring Security来处理登录、权限和角色控制。当用户尝试访问受保护的资源时,Spring Security会自动重定向到登录页面。登录成功后,它会根据用户的角色决定是否允许访问请求的资源。同时...

    Spring Security3技术手册

    - **15.5 为不同用户显示各自的登陆成功页面** - 根据用户的不同身份显示不同的登录成功页面。 - **示例代码**: 配置不同用户的登录成功页面。 **16. 自动登录** - **16.1 默认策略** - Spring Security默认...

    品优购_day04_Spring Security_V1.31

    - **面向切面编程 (AOP)**:Spring Security 使用 AOP 来处理权限检查,这样可以在不修改业务代码的情况下实现安全性。 2. **Spring Security 入门步骤** - **创建项目**:首先创建一个名为 `spring-security-...

    用Spring实现登陆验证(数据库,积分增加)

    在本文中,我们将深入探讨如何使用Spring框架来实现登录验证,并在用户成功登录后增加积分。这个主题对于那些想要深入了解Spring及其在Web应用程序中的应用,尤其是安全性和业务逻辑处理的开发者来说,是非常有价值...

    spring security

    - **为不同用户显示各自的登陆成功页面**: 根据用户角色展示不同的欢迎页面。 ##### 14. 自动登录 - **默认策略**: 使用默认的自动登录策略。 - **持久化策略**: 实现持久化的自动登录功能。 ##### 15. 匿名登录 ...

Global site tag (gtag.js) - Google Analytics