spring 获取登录用户空指针异常

问题描述

spring 获取登录用户空指针异常

public class LoginUtil {

private static final Logger logger = Logger.getLogger(LoginUtil.class);

public static String getLoginUsername() {
    Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    if (principal instanceof UserDetails) {
        return ((UserDetails) principal).getUsername();
    } else {
        logger.error("LoginUtil method[getLoginUsername] failed::principal's type is not UserDetails!");
    }
    return null;
}

}

是这样的,在一个B service 调用 没问题,但是我在A service 调用就报空指针异常 debug跟踪了下,显示当执行到这一步Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 报空指针,实在是找不到解决办法,求助啊

解决方案

spring空指针异常
spring security获取所有登录的用户信息
Spring注入SessionFactory的空指针异常

解决方案二:

不要一下调用这么多,拆开调用,另外在调用之前可以判断下是否为空;。

解决方案三:

分开来,一个一个调用分析

解决方案四:

一个一个判断一下呗,看看哪里空了

时间: 2024-09-10 23:15:19

spring 获取登录用户空指针异常的相关文章

获取登录用户的环信Id

问题描述 android端怎么获取登录用户的环信id 解决方案 message.from 是根据消息判断的,就是去取发这条消息的发送人ID解决方案二:message.from 是根据消息判断的,就是去取发这条消息的发送人ID解决方案三:获取当前登录的用户:EMChatManager.getInstance().getCurrentUser()

如何获取登录用户的ip

问题描述 程序服务器搭建在ip为192.168.1.83上,登录测试机器搭建在ip为192.168.5.111上面.服务器与登录机器不在一个网段上.登录机器的路由与服务器在一个网段上.我用下面的代码获取ip时,显示的仅仅是路由的静态ip:192.168.1.177,而不是测试机器的ip,这种情况如何解决?代码如下,从网上搜到的代码:.privateStringgetIpAddr(HttpServletRequestrequest){StringipAddress=null;//ipAddress

页面获取Spring Security登录用户

  1.在session中取得spring security的登录用户名如下:${session.SPRING_SECURITY_CONTEXT.authentication.principal.username} spring security 把SPRING_SECURITY_CONTEXT 放入了session 没有直接把username 放进去.下面一段代码主要描述的是session中的存的变量, 存跳转时候的URLsession {SPRING_SECURITY_SAVED_REQUE

VB.NET2010如何获取域用户的displayname,就是中文名称?

问题描述 PublicFunctiongetADLoginName()AsStringDimUserIdentityInfoAsSystem.Security.Principal.WindowsIdentityDimstrInfoAsStringUserIdentityInfo=System.Security.Principal.WindowsIdentity.GetCurrent()strInfo=UserIdentityInfo.NamegetADLoginName=strInfoEndFu

session-JSP页面如何获取当前登录用户的所有注册信息?

问题描述 JSP页面如何获取当前登录用户的所有注册信息? 看过不少相似的问题,但大多只是需要获取当前登录用户的用户名,这个只要在action里setAttrubibu()就可以了,但是我现在想将登录用户所有的注册信息都存进session,比如性别.邮箱.手机号什么的,但是在登录验证的时候只需要验证用户名和密码,其他的信息是不用输入的,这时候应该怎样把其他的信息也存入到session中呢? 解决方案 一般登录用户,会进行校验,进数据库与登录用户,进行比对,用户名和密码正确,则把从数据库中获取的用户

后台-第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户?

问题描述 第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户? 第三方授权登录就是获取从第三方获取到用户信息,然后再注册一个账户? 比如微信授权 知乎,就是获取用户在微信注册的信息,然后用这些信息在知乎上自动注册一个新用户? 是这个原理吗?这样整个授权过程就没后台什么事了,对吧? 解决方案 没有问题......... 解决方案二: 应该是....... 解决方案三: 一.完全的第三方授权登录是本系统不需要账号的,就用第三方提供的账号. 二.在本系统已经有账号管理的前提下,再附加第三

jsp-JSP登录后怎么获取当前登录用户信息?

问题描述 JSP登录后怎么获取当前登录用户信息? 我用的是MySQL,做了一个登录界面,注册的的时候有很多信息,但是登录时只验证用户名和密码,数据库如下: 比如我现在要获取已经登录的用户abc的全部信息存入session中,并在其他页面中调用,代码应该怎么写?用电话tel举个例子就好,我再对照着自己摸索一下,感激不尽. 解决方案 密码应该md5加密,对于用户登录之后,在判断用户登录成功之后,可以把用户信息存入到session中,其他地方直接从session中取就可以了.对于刚学的,建议看下框架,

session-WebSocket获取的登录用户的信息

问题描述 WebSocket获取的登录用户的信息 WebSocket怎么获取放在session里的登录用户的信息?求指教 解决方案 你上面提到的其实并不是乱码,而是urlencode编码之后的字符序列.你可以使用以下代码进行解码: String decodeStr = URLDecoder.decode(queryStr, "utf-8"); 解码之后再做分析. 解决方案二: 1.首先你要区分是HttpSession还是Websocket会话session. 2.HttpSession

登录后allGroups为空,请问要怎么做才能获取该用户的allgroups

问题描述 登录后allGroups为空,请问要怎么做才能获取该用户的allgroups. 解决方案 EMGroupManager.getInstance().asyncGetGroupsFromServer(new EMValueCallBack<List<EMGroup>>() { @Override public void onSuccess(List<EMGroup> value) { // TODO Auto-generated method stub grou