如何在 security 中 获得 user 信息?
由 security 管理权限后,登陆也由security来管理,因此如果不修改或扩展security的登陆机制,则无法手动设置user到session;
为了获得用户信息,有2种方案:
(1) 当用 UserService 的实现类 获取用户时,将用户设入 session ,注意不要设置密码等安全信息,这样就可以直接从session中获得user信息了,但缺点是无论是否登陆成功都设置了session信息;
(2) security中已经用某种方式保存了登陆用户的信息,可以使用下面的实用类来获得登陆的用户;
package com.spaceflysky.tools;
import org.apache.log4j.Logger;
import org.springframework.security.Authentication;
import org.springframework.security.context.SecurityContextHolder;
import com.spaceflysky.domain.User;
/**
* 从 security 中获得已登录用户信息;
*
* @author space
* @date Oct 6, 2008 5:58:58 PM
*/
public class SecurityUserTool {
protected static Logger log = Logger.getLogger(SecurityUserTool.class);
private static final Authentication getAuthentication() {
return SecurityContextHolder.getContext().getAuthentication();
}
/**
* 获得登陆的用户
*
* @return
*/
public static final User getUser() {
User user = null;
try {
user = (User) getAuthentication().getPrincipal();
} catch (Exception e) {
log.error("------ Get login user error ------ !", e);
}
return user;
}
}
分享到:
相关推荐
在Spring Security框架中实现多个登录页面的配置是一项高级特性,主要应用于区分前端用户与后端管理员的不同登录需求。本文将详细介绍如何通过Spring Security配置多个登录页面,并为不同类型的用户设置不同的登录...
在Spring OAuth2框架中,获取当前登录用户信息的过程与Spring Security有所不同。通常,Spring Security允许我们通过`SecurityContextHolder.getContext().getAuthentication().getPrincipal()`来获取详细的用户信息...
了解这些基本概念和文件后,你可以开始安装和配置"Security Administrator",根据你的服务器环境和安全策略定制用户权限设置,确保你的服务器资源得到妥善保护。记住,良好的用户权限管理是任何IT系统安全的基石,...
下次用户访问时,框架会使用这个令牌来自动登录用户。 4. **安全考虑**:“记住我”功能增加了安全性风险,因为如果用户的设备被他人使用,他们可能会被自动登录。因此,应谨慎使用并告知用户其潜在风险。 以上...
- **获得当前用户的信息**:通过 SecurityContextHolder 获取当前用户的 Authentication 对象。 - **UserDetailsService**:提供查询用户信息的服务接口。 - **GrantedAuthority**:表示用户具有的权限或角色。 - *...
- **获得源代码**:可以从 GitHub 或 Maven 仓库获取 Spring Security 的源代码。 #### 二、Spring Security 命名空间配置 ##### 2.1 命名空间的设计 Spring Security 提供了一个简洁的命名空间,用于简化配置...
- 用户登录后,Spring Security 可以根据用户的角色分配不同的访问权限。它支持自定义角色和权限映射,实现灵活的访问控制策略。 6. **基于 JWT 的认证**: - JSON Web Token (JWT) 是一种轻量级的身份验证机制,...
- **GrantedAuthority(权限)**:当用户成功认证后,会得到一组 GrantedAuthority,表示该用户被授予的权限。这些权限可以用于决定用户能访问哪些资源。 1.2 Spring Security 安全管理的原理 - **Spring Security...
- **获取当前用户信息:** 通过API接口或其他方式查询当前登录用户的信息。 - **第7章:自定义访问拒绝页面** - **实现自定义拒绝页面:** 当用户尝试访问未授权的资源时,显示特定的拒绝页面。 - **第8章:动态...
通过加入社区,开发者不仅可以获得最新的安全动态和技术支持,还能与其他安全专家交流心得,共同推动Spring Security的发展。 总之,Spring Security 3.1是一个全面而强大的安全框架,它不仅提供了丰富的安全功能,...
角色是一组预定义的权限集合,用户通过被分配角色来获得相应的权限。例如,"管理员"角色可能包含查看所有数据、修改数据等权限,而"普通用户"角色则可能只有查看数据的权限。 SpringSecurity的权限管理主要基于以下...
- **获得源代码**:可以通过官方网站或其他途径获取Spring Security的源代码,以便深入了解其内部实现机制。 - **核心模块**: - **Core - spring-security-core.jar**:包含核心安全性功能,如认证、授权等。 -...
- **CAS处理过滤器**:用于单点登录场景,验证CAS服务是否已对用户进行认证。 - **HTTP基本授权过滤器**:处理HTTP基本认证请求。 - **集成过滤器**:管理认证信息在请求间的传递,例如在HTTP会话中存储认证状态。 -...
6. **Remember Me**:Spring Security也提供了Remember Me服务,允许用户在一段时间内无须重新登录。这通常涉及到对用户密码哈希后的持久化存储。 7. **CSRF保护**:为了防止跨站请求伪造(Cross-Site Request ...
文档中提到,Spring Security采用就近原则进行权限验证,意味着用户访问资源时会按照配置的规则顺序执行,最先匹配到的规则将被执行,从而决定用户是否有权访问该资源。 #### 9. 注意事项 由于文档是通过OCR扫描...
在SSM项目中,Spring Security可以帮助我们实现用户登录、权限控制等功能。例如,你可以设置不同角色的访问权限,限制某些用户只能访问特定的URL或执行特定的操作。 描述中提到的"sql.sql"文件可能是项目所需的...
10. **RESTful支持**:在Spring Security 4.x中,针对RESTful服务的安全控制得到了强化,支持JSON Web Token(JWT)和OAuth2。 11. **API文档**:`apidocs`目录下的文档提供了详细的API参考,帮助开发者理解和使用...