pis*_*ise 9 java spring-mvc spring-security
我想在服务器启动时从数据库配置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();
}
Run Code Online (Sandbox Code Playgroud)
如何从数据库中读取url,例如:/ admin/**,而不是类文件中的硬编码值
mty*_*urt 11
您可以使用Spring JDBC支持.首先,您需要设置数据库.然后,您可以检索行并适当地处理它们.
你应该有一个表,你有行和一个列充满了喜欢/admin/**
和/db/**
.另一列应填充角色访问信息.之后,按照本教程,您应该检索这些行.假设您有以下实体类:
class Matcher {
public String name;
public String roleInfo;
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以迭代Matcher
实体进行配置:
http.authorizeRequests()
.antMatchers("/resources/**", "/signup", "/about").permitAll();
for (Matcher matcher : matchers) {
http.authorizeRequests().antMatchers(matcher.name).access(matcher.roleInfo);
}
http.authorizeRequests().anyRequest().authenticated()
.and()
// ...
.formLogin();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3124 次 |
最近记录: |