急求解决Spring security中认证后的UserDetailsService接口问题!

问题描述:
登录页面除开j_username和j_password,还有siteId参数,我如何才能在UserDetailsService的实现类里方法loadUserByUsername中获取到提交上来的siteId这个参数。

5个回答

你可以实现AuthenticationSuccessHandler接口,然后配置到UsernamePasswordAuthenticationFilter中,然后在里面通过request获取siteid这个值,再做相应的处理

yushangfeng
yushangfeng 你好,这个方法可以。我将siteId放到UserDetails实现类的属性里,然后在认证完成后,从里面获得。谢谢各位了。
接近 7 年之前 回复
wad12302
wad12302 这个方法没试过,应该可以的
接近 7 年之前 回复

UserDetailsService的方法loadUserByUsername只提供了一个String的username参数,无法获取其它参数

是什么原因让你需要在这个方法里获取siteid参数,可以通过其它方式来获取

DreamZhong
DreamZhong 按楼上的做,在成功验证后处理器中处理不同的转向
接近 7 年之前 回复
yushangfeng
yushangfeng 一个用户可以对应多个交互界面,我需要认证后,通过siteId来判断。
接近 7 年之前 回复

还有一种办法比较简便,通过前台拼接字符串,把参数拼接到user_name上,然后在后面拆开,就好了啊

:lol: 这个方法就是用过username 获取用户entity的 难道你的username 不是唯一的么?非要在加一个siteId?

当初我也是这么觉得,
现在我就是先根据用户ID查询用户,再查询一次

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring security 自定义UserDetailsService问题
在自定义UserDetailsService时我继承了JdbcDaoImpl,并重写了loadUserByUsername()方法在方法体中:rn[code="java"]rn@Overridern public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException rn UserDetails ud = super.loadUserByUsername(username);rn AuthUserDetails authUser = new AuthUserDetails(ud.getUsername(),ud.getPassword(),ud.isEnabled(),ud.isAccountNonExpired(),rn ud.isCredentialsNonExpired(),ud.isAccountNonLocked(),ud.getAuthorities());rnrn[/code]rn调用了父类的loadUserByUsername()方法,是不是就是走了父类中的sql:rn[code="java"]rn public static final String DEF_USERS_BY_USERNAME_QUERY =rn "SELECT username,password,enabled " +rn "FROM users " +rn "WHERE username = ?";rn[/code]rn这样我是不是就得建users表?rn我感觉这个我能通过自己自定义应该可以重写一下吧?rn求ss大牛...
基于数据库自定义UserDetailsService实现Spring security认证
Spring security——基于数据库自定义UserDetailsService实现认证 本文将展示如何在spring security中创建基于数据库自定义UserDetailsService的认证服务。 UserDetailsService UserDetailsService接口用于返回用户相关数据。它有loadUserByUsername()方法,根据username查询用...
Spring Security认证问题
最近一个项目,需要用到ss,r 最近看了不少文档,r 都是侧重于验证权限的讲解,r r 把例子放入eclipse中跑起来时,r 遇到一个认证的问题不大懂了,r r 描述如下。r r 在登陆页面输入用户名,r r 如何让ss知道当前用户的帐号,角色,等信息?r r 用ss的什么对象去存储?r r 本人新手,还往大大们赐教。
spring security中,如何把登陆页面的参数传递到UserDetailsService中
由于一个需求的问题,需要根据不同的登陆页面来调用不同的数据库来校验会员身份。不同的登陆页面使用EntryPoint就可以解决了,但是对用户校验的时候,我想根据登录表单的一个隐藏域的值,来区分不同的用户身份,进而在UserDetailsService中来调用不同额数据库进行校验,我看了可以在AuthenticationProcessingFilter 中的attemptAuthentication中可以获取到这个值,但是不知道怎么传递给UserDetailsService,想请教一下这个问题?
Spring security 认证-ch02
Spring security 认证-ch02是一个简单安全例子,这个例子在Spring security 认证-ch01中进一步复杂化。下一个例子为Spring security 认证-ch03.请多关注。
Spring Security 认证执行流程
本文基于 Spring Security 5.x #####推荐阅读: 项目集成Spring Security SpringSecurity 整合 JWT 一、外层-正常登陆调用 项目启动后会自动寻找 UserDetailsService 实现类; 执行 UserDetailsService 的唯一方法 loadUserByName(String username)&nbs...
spring security认证和授权
要实现的效果: 1、用户及用户的权限保存在数据库中。 2、url及所需的权限保存在数据库中,系统加载时从数据库中获取。 https://blog.csdn.net/u014572215/article/details/80309161
Spring security 认证-ch03
Spring security 认证-ch03是关联数据库,查询权限,ch01和ch02都是写死在配置文件中,ch03是直接从数据库中读取。下一个例子为Spring security 认证-ch04,请多关注。
Spring Security认证权限管理
NULL 博文链接:https://wuhaocn.iteye.com/blog/1933384
Spring security认证授权
Spring security认证授权例子,自动创建数据库,在SysUser类增加字段,即可动态增加数据库对应表sys_user字段(前提是要删除原表,启动应用时才会重建表)
Spring Security认证提供程序
1.简介 本教程将介绍如何在Spring Security中设置身份验证提供程序,与使用简单UserDetailsService的标准方案相比,提供了额外的灵活性。 2. The Authentication Provider Spring Security提供了多种执行身份验证的选项 - 所有这些都遵循简单的规范 - 身份验证请求由Authentication Provider处理,并且返回具有...
Spring Security表单登录认证
Spring Security是一个强有力并且高度定制化的认证和访问控制框架,致力于为Java应用程序提供认证和授权。 特性: 1、为认证和授权提供综合性和扩展性支持。 2、免受session定位、点击劫持、跨站点请求伪装等攻击。 3、Servelt API集成。 4、与Spring MVC集成   一、Spring Security架构 1、认证 AuthenticationMa...
Spring Security数据库认证实例(dao认证)
这个是我在学习了近1周,找了N多资料,通宵了3晚后的成果,附加的readme文件详细的说明部署的要点和开发的详细步骤
Spring Security认证系统浅析
Spring Security是个安全框架众所周知,同时也提供了一整套基于Web的认证机制和安全服务,当然如果你要通过其他协议的来实现安全服务,你也可以使用SpringSecurity来帮助你。   今天主要是讲解基于web端的安全认证机制,其他的留着以后有空再整理成博文。   首先SpringSecurity Web是基于它所提供的一整套Filter链来实现的,我们来看下它所提供的有...
Spring Security 认证处理流程源码
一、UsernamePasswordAuthenticationFilter org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter 第一个验证处理过滤器类,负责处理表单登录请求获,取请求中带的username、password,使用username、password构建org...
spring security 自定义认证登录
spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程 1)认证过程 生成未认证的AuthenticationToken ↑(获取信息) ...
spring security实现摘要认证
用户的权限会通过spring拦截器去做,spring security只通过它的过滤器去实现摘要认证。 web.xml中配置过滤器: springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /rest/* spri
跪求spring security中认证和授权的关系
是认证里边包含授权,还是认证和授权是一体的,他们的顺序是怎么样的?过程是怎么样的,蒙了....
spring security配置自定义认证
spring security配置自定义认证 spring security认证机制: 自定义认证类: 1.实现接口AuthenticationProvider,spring security内置的认证实现类DaoAuthenticationProvider。 2.重写authenticate(Authentication authentication)方法,实现认证逻辑。 spring se...
spring security过滤器链及认证流程
一、过滤器链spring Security功能的实现主要是由一系列过滤器链相互配合完成。下面介绍过滤器链中主要的几个过滤器及其作用:1.SecurityContextPersistenceFilter 会在请求开始时从配置好的 SecurityContextRepository 中获取 SecurityContext,然后把它设置给 SecurityContextHolder。在请求完成后将 Se...
解决关于spring security手动设置认证用户无效的问题
这里主要是为了总结一下调试的方式方法。毕竟调试了2天,实在是差劲。还未找到问题根源,但比起https://stackoverflow.com/questions/4664893/how-to-manually-set-an-authenticated-user-in-spring-security-springmvc中的解决方式还是没有那么hack了。问题:通过微信回调程序的认证接口进行登录,并将...
Spring security 4.1 登录成功后重复进行认证问题
问题场景: 登录成功后,在执行某个功能操作(例如:系统管理模块的删除功能时),会去执行UserDetailsService.loadUserByUsername 再次进行用户认证。 出现问题版本 Spring security 4.04  、 4.10 通过源码分析发现BasicAuthenticationFilter.authenticationIsRequired(usernam
详解Spring Security进阶身份认证之UserDetailsService(附源码)
    在上一篇Spring Security身份认证博文中,我们采用了配置文件的方式从数据库中读取用户进行登录。虽然该方式的灵活性相较于静态账号密码的方式灵活了许多,但是将数据库的结构暴露在明显的位置上,绝对不是一个明智的做法。本文通过Java代码实现UserDetailsService接口来实现身份认证。    1.1 UserDetailsService在身份认证中的作用    Spring...
Spring Security源码分析一:Spring Security认证过程
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了...
急 Spring Security 权限问题
我用 Spring Security 做了个权限管理,权限的配置都是写在数据库但,但每次配置权限后需要重启容器权限才能生效,(我估计是修改了权限后,缓存没有清除)请问这个怎么解决
spring security spring security
spring security spring security 中文文档
求 Spring Security 的源代码
谁有 Spring Security 的源代码 ,在Spring的官方没有找到。请发个链接给我。
security + oauth2 认证问题
各位大佬, rn "error": "unsupported_grant_type",rn "error_description": "Unsupported grant type: password"rnrn这个问题弄两天了。rn[code=java]rnrn认证服务器 代码:rnrn@Slf4jrn@Configurationrn@EnableAuthorizationServerrnpublic class AuthorizationConfig extends AuthorizationServerConfigurerAdapter rnrn @Autowiredrn private AuthServiceConfig authServiceConfig;rnrn @Autowiredrn private AuthenticationManager authenticationManager;rnrn @Autowiredrn private UserDetailsService userDetailsService;rnrn @Autowiredrn private RedisConnectionFactory redisConnectionFactory;rnrn /**rn * 要认证的客户端配置rn * @param clientsrn * @throws Exceptionrn */rn @Overridern public void configure(ClientDetailsServiceConfigurer clients) throws Exception rn log.info("configure(ClientDetailsServiceConfigurer clients)==============加载");rn /**rn * 配置客户端详情信息(Client Details)rn * clientId:(必须的)用来标识客户的Id。rn * secret:(需要值得信任的客户端)客户端安全码,如果有的话。rn * scope:用来限制客户端的访问范围,如果为空(默认)的话,那么客户端拥有全部的访问范围。rn * authorizedGrantTypes:此客户端可以使用的授权类型,默认为空。rn * authorities:此客户端可以使用的权限(基于Spring Security authorities)。rn */rn clients.inMemory()rn .withClient(authServiceConfig.getClientId())rn .secret(authServiceConfig.getClientSecret())rn .scopes(authServiceConfig.getScope())rn .authorizedGrantTypes("client_credentials", "password", "refresh_token")rn .accessTokenValiditySeconds(1200)rn .refreshTokenValiditySeconds(50000);rn rnrn /**rn * 使配置的token生效 redisTokenStore()rn * @param endpointsrn */rn @Overridern public void configure(AuthorizationServerEndpointsConfigurer endpoints) rn log.info("configure(AuthorizationServerEndpointsConfigurer endpoints)==============加载");rn endpointsrn // token存储rn .tokenStore(redisTokenStore())rn // 自定义token生成方案rn .accessTokenConverter(accessTokenConverter())rn // 身份认证管理器, 主要用于"password"授权模式rn .authenticationManager(authenticationManager)rn // 配合身份认证管理器, 检查用户名密码有效性rn .userDetailsService(userDetailsService); //告诉security 用自己的实现daorn rnrnrn /**rn * 认证服务器的安全配置rn * @param securityrn * @throws Exceptionrn */rn @Overridern public void configure(AuthorizationServerSecurityConfigurer security) throws Exception rn log.info("configure(AuthorizationServerSecurityConfigurer security)==============加载");rn securityrn .allowFormAuthenticationForClients()rn .tokenKeyAccess("isAuthenticated()") //访问tokenKey 的时候须要认证rn .checkTokenAccess("permitAll()");rn rnrn @Beanrn public PasswordEncoder passwordEncoder() rn //用户验证的时候使用加密处理rn return new BCryptPasswordEncoder();rn rnrnrn /**rn * tokenstorern */rn @Beanrn public TokenStore redisTokenStore() rn RedisTokenStore tokenStore = new RedisTokenStore(redisConnectionFactory);rn tokenStore.setPrefix(SecurityConstant.SK_PREFIX);rn return tokenStore;rn rnrn @Beanrn public AccessTokenConverter accessTokenConverter() rn JwtAccessTokenConverter jwtAccessTokenConverter = new JwtAccessTokenConverter();rn // 设置签名rn jwtAccessTokenConverter.setSigningKey(SecurityConstant.SIGN_KEY);rn return jwtAccessTokenConverter;rn rnrnrn[/code]rnrn我启动认证服务器的时候rn首先加载configure(AuthorizationServerEndpointsConfigurer endpoints) 这个configure ,rn[img=https://img-bbs.csdn.net/upload/201805/02/1525233684_938798.jpg][/img]rn我发现authenticationManager 是空的,然后我查看上面注入的rn[img=https://img-bbs.csdn.net/upload/201805/02/1525233063_78622.jpg][/img] 这三个都是空的,rnrn这三个的加载顺序rn[img=https://img-bbs.csdn.net/upload/201805/02/1525234835_720512.jpg][/img]rnrn最后请求rn[img=https://img-bbs.csdn.net/upload/201805/02/1525234875_227348.jpg][/img]rnrnrn跪求各位大佬帮忙看看,这是啥问题啊,搞两天了rn
【Spring Security OAuth2笔记系列】- spring security - 短信验证码接口发送
短信验证码接口发送 实现短信验证码登录 开发短信验证码接口 如何校验短信验证码 重构代码 这里的套路与之前图形验证码的套路类似 开发短信验证码接口 @RestController public class ValidateCodeController { public static final String SESSION_KEY = "SESSION_KEY_IMAGE...
SPRING SECURITY中 SESSION问题
怎么在spring security环境中,用户登录后, 放入整个user对象啊? rnrn怎么在spring security环境中,操作session?rnrn
Spring Security认证后 如何获取更多的用户信息?
rn 使用Spring Security认证后,如何在页面中获取更多的用户信息?rn 例如用户的电话号码、email地址等等,这些数据如何自定义到用户信息里?rn  rn  rn
Spring Security 认证成功后跳转错误码404
描述问题 浏览器中输入http://localhost:8080/test.html,认证服务跳转到login.html,输入正确的账号密码后,跳转过去返回404。   分析问题   pom主要信息 spring boot version 2.0.4.RELEASE spring security 、MVC version 2.0.4.RELEASE 仔细看了最后跳转的路径,是根...
spring security登陆认证成功后无法控制权限
刚接触spring security不久便遇到成功登陆但是无法控制权限的问题,一直找资料都没找到原因,之后才发现是个小坑。。 我们在定义角色表的时候要在角色的前面加上 ROLE_ 前缀 不然security会认为这是权限, 或者在获取数据库角色的时候加上 “ROLE_”+数据库的角色名(例如:ADMIN)。...
关于usb接口的问题,急求解决.....
通过usb线将手机上的东西上传到电脑上,显示超出限制电量,当时也没再注意,后来发现插usb的这个接口不行了,插上鼠标也没有反应。最后,只有一个usb接口能用,想问一下,usb接口是不是烧了,还是其他的原因,有什么解决办法没有。
关于spring security 认证的简单知识整理
  1.认证   几个重要的类: UsernamePasswordAuthenticationFilter 从名字上看,就知道,这是一个验证username 和 password的过滤器,通过 filter获取request,从request获取username 和 password 来进行验证,最后生成一个UsernamePasswordAuthenticationToken ,...
Spring Security Oauth2.0 实现自定义认证授权
定义手机号登录令牌 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28...
spring security 开发 基于表单的认证
终于进入 spring security 的章节了 基本原理 实现用户名+密码认证 实现手机号+短信认证
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈开发企业级认证与授权,已将原视频解密,可直接观看
Spring Security详解(四)认证之鉴权
4 鉴权 从Spring Security的过滤器链中,我们已经发现位于最后的FilterSecurityInterceptor是用来进行权限认证的,这一节将详细分析Spring Security是如何进行权限认证的。 4.1 FilterSecurityInterceptor 源码分析: public class FilterSecurityInterceptor exten...
spring security 3 自定义认证,授权示例
  Spring Security 3.x 出来一段时间了,跟Acegi是大不同了,与2.x的版本也有一些小小的区别,网上有一些文档,也有人翻译Spring Security 3.x的guide,但通过阅读guide,无法马上就能很容易的实现一个完整的实例。   我花了点儿时间,根据以前的实战经验,整理了一份完整的入门教程,供需要的朋友们参考。 1,建一个web project,并导入所有...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法