Spring security 在会话中放置用户信息的位置

Spring security 在会话中放置用户信息的位置,spring-security,redis,spring-boot,Spring Security,Redis,Spring Boot,我有spring引导代码来验证数据库的使用。它生成x-auth令牌或会话。外部redis服务器正在管理会话,我如何将用户信息放入会话中,以便其他用户无法修改会话所属的任何其他用户的数据 以下是代码片段: public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired JdbcTemplate jdbcTemplate; @Override protected voi

我有spring引导代码来验证数据库的使用。它生成x-auth令牌或会话。外部redis服务器正在管理会话,我如何将用户信息放入会话中,以便其他用户无法修改会话所属的任何其他用户的数据

以下是代码片段:

public class SecurityConfig extends WebSecurityConfigurerAdapter {  

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Override
    protected void configure(AuthenticationManagerBuilder builder) throws Exception {
          builder.jdbcAuthentication().dataSource(jdbcTemplate.getDataSource())
        .usersByUsernameQuery(
            "select username,password, enabled from users where username=?")
        .authoritiesByUsernameQuery(
            "select username, role from user_roles where username=?");          

    }

另外,我想将登录限制为仅一个web服务,该服务将生成x-auth令牌,其他web服务将被禁用以生成令牌。

因为您使用的是Redis。假设用户有一个id(user.id=toto12) 您应该在服务器端而不是客户端执行用户的检查

检查服务器端的过程: 1.检查auth jdbcTemplate,就像您所做的一样

  • 然后,让用户登录并与尝试登录REDIS的用户进行比较。如果为空,则在Redis中创建一条新记录[例如auth:users:toto12=sessionid]

  • 如果所有这些测试都有效,则假设用户有权登录,则返回令牌


  • 因为你在用Redis。假设用户有一个id(user.id=toto12) 您应该在服务器端而不是客户端执行用户的检查

    检查服务器端的过程: 1.检查auth jdbcTemplate,就像您所做的一样

  • 然后,让用户登录并与尝试登录REDIS的用户进行比较。如果为空,则在Redis中创建一条新记录[例如auth:users:toto12=sessionid]

  • 如果所有这些测试都有效,则假设用户有权登录,则返回令牌

  • 你查过了吗?也可能有用。它可以处理您描述的情况:

    将登录限制为仅一个web服务,该服务将生成x-auth令牌,其他web服务将被禁用以生成令牌

    对于会话用例,请签出项目。它也支持Redis

    我有spring引导代码来验证数据库的使用。信息技术 生成x-auth令牌或会话。外部redis服务器为 管理会话时,如何将用户信息放入 会话,以便其他用户不能修改任何其他用户的数据 他们将被交叉检查会话属于谁

    你查过了吗?也可能有用。它可以处理您描述的情况:

    将登录限制为仅一个web服务,该服务将生成x-auth令牌,其他web服务将被禁用以生成令牌

    对于会话用例,请签出项目。它也支持Redis

    我有spring引导代码来验证数据库的使用。信息技术 生成x-auth令牌或会话。外部redis服务器为 管理会话时,如何将用户信息放入 会话,以便其他用户不能修改任何其他用户的数据 他们将被交叉检查会话属于谁


    我浏览了本教程,此链接包含用户标识教程。

    我浏览了本教程,此链接包含用户标识教程。

    我认为,应该是解决方案,我认为,应该是解决方案