- import org.acegisecurity.Authentication;
-
import org.acegisecurity.context.SecurityContext;
-
import org.acegisecurity.context.SecurityContextHolder;
-
import org.acegisecurity.ui.WebAuthenticationDetails;
-
import org.acegisecurity.userdetails.UserDetails;
-
-
public class ThreadLocaTest {
-
public static String getUsername() {
- SecurityContext ctx = SecurityContextHolder.getContext();
-
if (ctx != null) {
- Authentication auth = ctx.getAuthentication();
-
if (auth != null) {
- Object principal = auth.getPrincipal();
-
if (principal instanceof UserDetails) {
-
return ((UserDetails) principal).getUsername();
-
} else {
-
return principal.toString();
- }
- }
- }
-
return null;
- }
-
-
public static String getSessionID() {
- SecurityContext ctx = SecurityContextHolder.getContext();
-
if (ctx != null) {
-
if (ctx instanceof SecurityContext) {
- SecurityContext sc = (SecurityContext) ctx;
- Authentication auth = sc.getAuthentication();
-
if (auth != null) {
- Object details = auth.getDetails();
-
if (details instanceof WebAuthenticationDetails) {
-
return ((WebAuthenticationDetails) details).getSessionId();
-
} else {
-
return null;
- }
- }
- }
- }
-
return null;
- }
- }
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContext;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.ui.WebAuthenticationDetails;
import org.acegisecurity.userdetails.UserDetails;
public class ThreadLocaTest {
public static String getUsername() {
SecurityContext ctx = SecurityContextHolder.getContext();
if (ctx != null) {
Authentication auth = ctx.getAuthentication();
if (auth != null) {
Object principal = auth.getPrincipal();
if (principal instanceof UserDetails) {
return ((UserDetails) principal).getUsername();
} else {
return principal.toString();
}
}
}
return null;
}
public static String getSessionID() {
SecurityContext ctx = SecurityContextHolder.getContext();
if (ctx != null) {
if (ctx instanceof SecurityContext) {
SecurityContext sc = (SecurityContext) ctx;
Authentication auth = sc.getAuthentication();
if (auth != null) {
Object details = auth.getDetails();
if (details instanceof WebAuthenticationDetails) {
return ((WebAuthenticationDetails) details).getSessionId();
} else {
return null;
}
}
}
}
return null;
}
}
or
-
-
-
-
-
public static IUserDetails getUser() {
-
-
if ((SecurityContextHolder.getContext() == null)
-
|| !(SecurityContextHolder.getContext() instanceof SecurityContext)
- || (((SecurityContext) SecurityContextHolder.getContext())
-
.getAuthentication() == null)) {
-
return null;
- }
- Authentication auth = SecurityContextHolder.getContext().getAuthentication();
-
if (auth.getPrincipal() == null) {
-
return null;
- }
-
IUserDetails user = null;
-
if (auth.getPrincipal() instanceof IUserDetails) {
- user = (IUserDetails) auth.getPrincipal();
- }
-
return user;
- }
分享到:
相关推荐
获取当前用户信息 7、自定义访问拒绝页面 8、动态管理资源结合自定义登录页面 9、 Spring Security 与 CAS整合 配置JA-SIG 配置Spring Security 为CAS配置SSL 10、标签的使用 11、自动登录 12、防御会话伪造 13...
//给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息...
//给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener 在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...
3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换...