/*
* Copyright Huawei Symantec Technologies Co.,Ltd. 2008-2009. All rights reserved.
*
*
*/
package com.huaweisymantec.core.service;
import java.util.Collection;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import com.huaweisymantec.omm.domain.system.RoleEnum;
/**
* Security资源获取通用类
*
*/
public final class SecurityContext {
private SecurityContext() {
}
/**
* 登陆成功后,得到当前用户的用户名
*
* @return String
*/
public static String getPrincipal() {
String username = null;
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if(authentication==null){
return null;
}
Object obj = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (obj instanceof UserDetails) {
username = ((UserDetails) obj).getUsername();
} else {
username = obj.toString();
}
return username;
}
/**
* 登陆成功后,判断当前用户是否为超级管理员
*
* @return boolean
*/
public static boolean isAdmin() {
Object obj = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (obj instanceof UserDetails) {
Collection<GrantedAuthority> authorities = ((UserDetails) obj).getAuthorities();
for (GrantedAuthority grantedAuthority : authorities) {
if (grantedAuthority.getAuthority().equals(RoleEnum.ROLE_ADMIN.name())) {
return true;
}
}
}
return false;
}
}
分享到:
相关推荐
securityContext: privileged: false capabilities: add: ["NET_ADMIN"] env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: ...
9.2.1 SecurityContextHolder,SecurityContext和认证对象 74 获取有关当前用户的信息 75 9.2.2 UserDetailsService 75 9.2.3授予权力 77 9.2.4总结 77 9.3认证 78 9.3.1什么是Spring Security中的认证? 78 9.3.2...
在这个学习笔记中,我们将探讨两个关键点:身份认证成功后的操作以及在多个请求之间共享SecurityContext。 1. Acegi身份认证成功之后的操作 当用户的身份认证成功后,Acegi会触发一个`AuthenticationSuccessEvent`...
当我们在4月15日-5 Pod生命周期管理.pdf文件中看到“pod.spec.securityContext”和“pod.spec.containers.securityContext”的描述时,我们关注的是Kubernetes如何在Pod和容器级别提供安全上下文配置。安全上下文是...
当请求到达时,它检查session中是否存在SecurityContext,如果存在则将其设置到SecurityContextHolder中,供后续过滤器使用。如果不存在,它会创建一个新的SecurityContext并放入ThreadLocal的SecurityContextHolder...
- 认证成功后,Spring Security创建一个`Authentication`对象并存储在`SecurityContext`中。 2. **用户切换**:要实现用户切换,我们需要在用户界面提供一个选择或输入新用户名的功能,然后执行以下操作: - 获取...
Java Web服务(Web Service)是一种基于开放标准的、平台无关的通信协议,它允许不同系统间的应用程序通过网络进行互操作。在Java中,`javax.ws` 包提供了一种内置的方式来实现Web服务,使得开发者可以方便地创建和...
SecurityContext 是 Spring Security 中的一个重要概念,表示当前用户的安全上下文。SecurityContext 中包含用户的身份信息、权限信息等。SecurityContext 是通过 SecurityContextHolder 实现的。 五、Spring ...
6. **LogoutFilter分析**:注销过滤器处理用户的退出操作,清除session中的SecurityContext以及可能的cookie信息,确保用户安全退出。 7. **UsernamePasswordAuthenticationFilter分析**:这个过滤器处理基于表单的...
- 成功认证后,创建 `Authentication` 对象并保存到 `SecurityContext`。 2. **授权过程**: - 根据 `Authentication` 对象中的角色和权限信息进行访问控制。 - 使用 `AccessDecisionManager` 进行决策。 - ...
private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("/api/.*")) .build(); } List<SecurityReference> ...
cas.securityContext.serviceProperties.adminRoles=ROLE_ADMIN cas.securityContext.casProcessingFilterEntryPoint.loginUrl=http://sso.ican.org/login cas.securityContext.ticketValidator....
- **在请求之间保存 SecurityContext:** 保持 SecurityContext 在多个请求之间的持久化。 **5.5 Spring Security 中的访问控制** - **安全和 AOP 建议:** 结合 AOP 实现细粒度的访问控制。 - **安全对象和 ...
Acegi的核心组件包括SecurityContext、Authentication、Authorization和FilterChainProxy。SecurityContext存储了当前用户的认证信息,Authentication代表了用户的身份和权限,Authorization则是处理访问控制的部分...
首先,我们需要理解 Acegi 的核心概念,包括 SecurityContext、Authentication 和 Authorization。 1. SecurityContext:这是 Acegi 中的安全上下文,包含了当前用户的认证信息(Authentication)。SecurityContext...
SecurityContextHolder提供了从当前线程访问SecurityContext的方法,SecurityContext则包含了当前用户的Authentication对象。 4. 认证成功后的处理: a. 认证成功后,Spring Security会将认证信息存储在session中...
该规范定义了一系列新的API和接口,包括`SecurityContext`、`LoginConfig`、`Role`和`Permission`等,这些都与Java SE中的安全模型相辅相成。 1. **SecurityContext**: 这个接口提供了获取当前安全上下文信息的方法...
`org.springframework.security.core.context.SecurityContext`是主要接口,`org.springframework.security.core.context.SecurityContextHolder`提供了获取和设置SecurityContext的方法。 4. **Filter Chain**:...
- SpringSecurity验证信息,如果成功则创建Authentication对象并放入SecurityContext - 之后的所有请求都会检查这个SecurityContext,判断用户是否已认证和授权 8. 源码阅读与学习: 这个毕业设计项目提供的源...