java – Spring security授权来自数据库的Requests值

前端之家收集整理的这篇文章主要介绍了java – Spring security授权来自数据库的Requests值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在服务器启动时从数据库配置Authorize Requests值.目前我在 Java文件中给出了硬核值,有没有办法从数据库中读取相同内容.

以下是示例代码

protected void configure(HttpSecurity http) throws Exception {
http
    .authorizeRequests()                                                                
        .antMatchers("/resources/**","/signup","/about").permitAll()                  
        .antMatchers("/admin/**").hasRole("ADMIN")                                      
        .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")            
        .anyRequest().authenticated()                                                   
        .and()
    // ...
    .formLogin();
}

如何从数据库中读取url,例如:/ admin / **,而不是类文件中的硬编码值

解决方法

您可以使用 Spring JDBC支持.首先,您需要设置数据库.然后,您可以检索行并适当地处理它们.

你应该有一个表,你有行和一个列填充像/ admin / **和/ db / **.另一列应填充角色访问信息.之后,按照本教程,您应该检索这些行.假设您有以下实体类:

class Matcher {
   public String name;
   public String roleInfo;
}

然后,您可以遍历Matcher实体进行配置:

http.authorizeRequests()
            .antMatchers("/resources/**","/about").permitAll();

    for (Matcher matcher : matchers) {
        http.authorizeRequests().antMatchers(matcher.name).access(matcher.roleInfo);
    }
    http.authorizeRequests().anyRequest().authenticated()
            .and()
                    // ...
            .formLogin();
原文链接:https://www.f2er.com/java/130122.html

猜你在找的Java相关文章