首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从SessionRegistry获取用户名,总是返回ADMIN user

从SessionRegistry获取用户名,总是返回ADMIN user的问题,可能是由于以下几个原因导致的:

  1. 代码逻辑错误:首先,需要确保代码中正确使用了SessionRegistry来获取用户名。可以检查代码中是否正确调用了SessionRegistry的相关方法,并且传入了正确的参数。另外,还需要确保代码中没有其他地方对用户名进行了修改或者覆盖。
  2. Session管理问题:如果使用的是分布式Session管理,可能存在Session同步的延迟问题。在分布式环境下,不同的服务器可能会有不同的SessionRegistry实例,而这些实例之间需要进行同步。如果同步存在延迟,可能导致获取用户名时返回的是旧的值。可以尝试等待一段时间,或者手动刷新SessionRegistry来解决这个问题。
  3. 用户权限问题:如果当前用户没有足够的权限访问SessionRegistry,可能会导致获取用户名失败。需要确保当前用户具有足够的权限来访问SessionRegistry,并且没有被限制访问特定用户的权限。

针对以上问题,可以采取以下解决方案:

  1. 检查代码逻辑:仔细检查代码中使用SessionRegistry的部分,确保调用方法和参数的正确性。可以使用调试工具来跟踪代码执行过程,查看是否有其他地方对用户名进行了修改或者覆盖。
  2. 检查Session管理配置:如果使用了分布式Session管理,可以检查相关配置是否正确,并且确保Session同步正常工作。可以查看SessionRegistry的实现方式,了解其同步机制,并根据需要进行手动刷新或者等待一段时间。
  3. 检查用户权限:确保当前用户具有足够的权限来访问SessionRegistry,并且没有被限制访问特定用户的权限。可以查看相关权限配置,或者联系系统管理员进行确认。

总结起来,解决从SessionRegistry获取用户名总是返回ADMIN user的问题,需要仔细检查代码逻辑、Session管理配置和用户权限,并根据具体情况采取相应的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Security权限控制

④服务端web容器获取HTTP报文头部相关认证信息,从中获取到username,根据username获取对应的密码,同样对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合进行MD5运算...④服务端web容器获取表单的用户名和密码,匹配此用户名与密码是否正确,是否有相应资源的权限,如果认证成功则返回相关资源,否则再执行②,重新进行认证。...(3)ConcurrentSessionFilter,因为它需要使用SecurityContextHolder的功能,而且更新对应session的最后更新时间,以及通过SessionRegistry获取当前的...@RequestMapping("/roleAuth") public String role() { return "admin auth"; } 这样User权限的用户...也可以数据库中获取用户和权限信息: 定义MyUserService类,实现UserDetailsService接口,使用去提供的loadUserByUsername方法: @Override

1.5K20

【SpringSecurity系列(十七)】Spring Security 如何处理 Session 共享

---- 前面和大家聊了 Spring Security 如何像 QQ 一样,自动踢掉已登录用户(Spring Boot + Vue 前后端分离项目,如何踢掉已登录用户?)...,但是前面我们是基于单体应用的,如果我们的项目是集群化部署,这个问题该如何解决呢? 今天我们就来看看集群化部署,Spring Security 要如何处理 session 并发。...=javaboy spring.security.user.password=123 server.port=8080 配置一下 Redis 的基本信息;Spring Security 为了简化,我就将用户名密码直接配置在...") + ":" + port; } } 考虑到一会 Spring Boot 将以集群的方式启动 ,为了获取每一个请求到底是哪一个 Spring Boot 提供的服务,需要在每次请求时返回当前服务的端口号...(sessionRegistry()); } @Bean SpringSessionBackedSessionRegistry sessionRegistry() {

1.2K10
  • 如何用 ajax 连接mysql数据库,并且获取从中返回的数据。ajax获取mysql返回的数据。responseXML分别输出不同数据的方法。

    使用它,就可以无闪刷新页面,并且数据库获取实时改变的数据反馈回界面,显示出来!是不是很爽,的确。       废话不多,开讲,请注意我的代码的注释,里面详说!...; 52 return; 53 } 54 } 55 56 57 58 //回调函数,就是刚才定义的函数,用来获取服务器文件,asp或者php或者其他返回的信息...{ 76 //判断http的交互是否成功 77 if(xmlHttp.status==200) 78 { 79 //获取服务器端返回的数据...82 //还有一种返回式以字符串的形式返回,responseText,这个可以用下标法逐个输出,但是注意,逐个输出的是字符, 83 //也就是说,你想要的一个字符串会被拆成几份...""; 12 //这里的 标签就是刚才(" "),里面要填的,通过这方式,分别输出、获取不同的值,下同 13 echo "" .

    7.7K81

    Spring Security 6.x 集成Spring Session实现分布式会话共享

    org.springframework.security.oauth2.core.user.DefaultOAuth2User\x00\x00\x00\x00\x00\x00\x02l\x02\x00\...的Attribute属性中获取HttpSessionWrapper的实例,相当于利用Request属性中作为缓存 if (currentSession !...RedisSessionRepository只提供了通过sessionId查询Session的简单方法,而RedisIndexedSessionRepository实现了按照索引查询Session的方法,例如根据用户名...sessionId_index,即"spring:session:sessions:expires:1"都会被清理,这样一来通过订阅keyspace notifications的事件,就能够确保principal_index总是能够被删除掉...而至于RedisIndexedSessionRepository#findById方法,该方法在取出Session便会检查是否过期,因此可以保证不会返回已过期的Session对象@Overridepublic

    41000

    微人事如何像 QQ 一样实现登录互踢?松哥手把手教大家

    上篇文章中,我们讲了在 Spring Security 中如何踢掉前一个登录用户,或者禁止用户二次登录,通过一个简单的案例,实现了我们想要的效果。...找到了问题所在,那么解决问题就很容易了,重写 User 类的 equals 方法和 hashCode 方法即可: @Entity(name = "t_user") public class User implements...= o.getClass()) return false; User user = (User) o; return Objects.equals(username, user.username...3.2 具体应用 我们来看下具体怎么实现,我这里主要列出来一些关键代码,完整代码大家可以 GitHub 上下载:https://github.com/lenve/vhr。...4.小结 好了,本文主要和小伙伴们介绍了一个在 Spring Security 中处理 session 并发问题时,可能遇到的一个坑,以及在前后端分离情况下,如何处理 session 并发问题。

    1.4K20

    Spring Security 6.x 一文讲透Session认证管理机制

    一、Tomcat中Session的底层实现为了更好地理解session的工作方式,有必要先回顾一下session的一些背景知识,下面以Tomcat为例,大致介绍一下Session是如何在服务端维护的。...二、SecurityContext存取的基本流程首先简单介绍一下如何通过Session机制保存和读取SecurityContext对象,实际上整个流程基本由Spring Security框架封装完成,对开发者来说并不需要太多的开发成本...,这里会创建一个空的SecurityContext,而如果已经认证过,则会session的属性中获得之前保存好的SecurityContext实例。...lastRequest; // 最近访问时间,每次发起请求时,如果当前Session还未失效,则刷新该时间 private final Object principal; // 标识当前用户,通常就是用户名...sessionRegistry; ...

    69411

    【SpringSecurity系列(十三)】只允许一台设备在线

    自己做开发后,也遇到过一模一样的需求,正好最近的 Spring Security 系列正在连载,就结合 Spring Security 来和大家聊一聊这个功能如何实现。...Security 【SpringSecurity系列(二)】Spring Security入门 【SpringSecurity系列(三)】定制表单登录 【SpringSecurity系列(四)】登录成功返回...This session has been expired (possibly due to multiple concurrent logins being attempted as the same user...接下来计算出当前用户已经有几个有效 session 了,同时获取允许的 session 并发数。...本文案例大家可以 GitHub 上下载:https://github.com/lenve/spring-security-samples 好了,不知道小伙伴们有没有 GET 到呢?

    96810

    自定义Spring Security的用户认证逻辑

    前言 在我们上篇中,用户的用户名是固定的,密码也是由框架为我们生成的,那么我们实际场景中,用户的登录信息应该是数据库中读取的。...Spring Security中自定义用户认证的相关逻辑包含三部分,如何处理用户信息获取如何处理用户校验、如何处理密码加密解密。...如何处理用户信息获取 在Spring Security中获取用户信息是被封装在一个叫UserDetailsService的接口里面的,他只有一个方法,这个方法会根据用户名去我们的存储中读取用户信息,并封装成...logger.info("登录用户名:"+username); // 返回Spring Security提供的user对象 return new User(username...返回User对象构造方法要提供三个参数。第一个参数和第二个参数是用来做认证的,第三个参数就是我们给这个用户的授权用的。 我们来启动服务,在登录页面上随便输一个用户名和密码。

    1.1K40

    spring security 实践 + 源码分析

    ().username("admin").password("admin") .roles("ADMIN", "USER", "ACTUATOR").build....roles("USER").build()); } 上述配置添加了2个用户,adminuser 如何实现方法级别的权限控制呢?...像上面的例子 admin 只能访问 admin 授权的接口,而不能访问 user 的接口,而我们的业务场景往往是 admin 拥有最高权限,可访问其他所有用户的资源,故这里涉及到一个权限继承的问题(当然你可以在所有方法上都标记...如何获取当前用户的信息? 因为身份信息是与线程绑定的,所以可以在程序的任何地方使用静态方法获取用户信息。...DaoAuthenticationProvider:它获取用户提交的用户名和密码,比对其正确性,如果正确,返回一个数据库中的用户信息(假设用户信息被保存在数据库中)。

    56020

    Angular中ngCookies模块介绍

    1.Cookie介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。...说明:目前也有不部门实现是,每次点击购买,都直接发请求到后台,后台存储要购买的数据,然后再点击支付之前,后台获取用户要购买的尚品数据,不使用Cookie也可以完成。 用户登录,记住密码。...开发者可以在用户登录之后,将用户名和密码,以某种加密的方式存储到客户端,第二次登录时,直接获取Cookie,然后发送Cookie到后台服务器进行验证,达到用户勾选了“记住密码”,后续无需输入用户名和密码的功能...:encryptionStr("admin"), password:encryptionStr('123456') } $cookies.putObject('user',user,{'expires...("admin"), password:encryptionStr('123456') } $cookieStore.putObject('user',user,{'expires':expireDate

    2.4K80

    Python访问SQLite数据库使用参数化查询防SQL注入

    例如,假设在登录界面的代码中分别使用user_name和pass_word获取用户输入的用户名和密码,然后使用下面的代码拼接SQL语句,试图返回数据表中以user_name为用户名且以pass_word...password="{pass_word}"' 如果用户在登录时提交user_name = 'admin'和pass_word = '1" or 1=1--',那么上面的SQL将被拼接为 'select...,如此一来,语句中where的条件总是成立的,如果服务端只是简单地检查SQL语句查询结果是否大于0,那么有可能被攻击。...再例如,如果用户提交user_name = 'admin'和pass_word = '1" or quanxian="345',那么上面的语句会被拼接为 'select count(xingming)...quanxian 这样一来,攻击者就可以通过暴力测试来获取数据库和数据表的结构。

    3.2K10

    MyBatis-22MyBatis缓存配置【一级缓存】

    userMapper.selectSysUserById(1L); System.out.println("再次查询id相同的sysUser End"); // 虽然么有更新数据库,但是这个用户名和...第二次获取sysUser2的时候,日志来看 再次查询id相同的sysUser Begin 再次查询id相同的sysUser End 中间并没有任何到数据库查询用户的操作。...测试的代码看,获取sysUser1后重新设置了userName,之后没有进行任何更新数据库的操作。...当Map缓存对象中已经存在该键值时,则会返回缓存中的对象。 缓存中的对象和我们得到的结果是同一个对象那个,反复使用相同参数执行同一个方法时,总是返回同一个对象。...接下来执行deleteSysUserById操作,然后使用相同的方法和参数获取了sysUser4。日志和结果看,sysUser3和sysUser4是完全不同的两个对象。

    36030

    (八) SpringBoot起飞之路-整合Shiro详细教程(MyBatis、Thymeleaf)

    :通过方法参数中的 token 就可以获取到我们刚才的那个 token信息,最方便的方法就是下面,直接通过 getPrincipal() 获取用户名(Object 转 String),还有一种方法就是...{ // 返回 null 即会抛异常 return null; } } B:授权 授权,也就是在用户认证后,来设置用户的权限或者角色信息,这里主要是获取用户名以后...,通过 service 中调用 mapper 接着根据用户名查询用户或者权限,由于返回的是用户或者权限实体对象,所以配合 getxxx等方法就可以获取到需要的值了 当然了,最主要的还是根据自己 mapper...以及表的返回情况设置,这里只要能获取到角色以及权限信息(这里是 String 类型)就可以了,如果是多个角色,就要使用 setRoles() 方法了,具体需要可以看参数和返回值,或者查阅文档,这里演示都是单个的...,如果需要更多的信息,我就建议存到 session ,这里我是直接使用 shiro:principal 标签获取用户名 <!

    99920

    apache shiro 在spring 的使用

    =user.getRoles() && user.getRoles().size()>0){ // //获取当前登录用户的角色 // for(Role role : user.getRoles()){...return null; // } //此处无需比对,比对的逻辑Shiro会做,我们只需返回一个和令牌相关的正确的验证信息 //说白了就是第一个参数填登录用户名,第二个参数填合法的登录密码(可以是数据库中取到的...SimpleAuthenticationInfo("big", "big", this.getName()); this.setSession("currentUser", "big"); return authcInfo; } //没有返回登录用户名对应的...return null; // } //此处无需比对,比对的逻辑Shiro会做,我们只需返回一个和令牌相关的正确的验证信息 //说白了就是第一个参数填登录用户名,第二个参数填合法的登录密码(可以是数据库中取到的...SimpleAuthenticationInfo("big", "big", this.getName()); this.setSession("currentUser", "big"); return authcInfo; } //没有返回登录用户名对应的

    55820
    领券