java - 在 Spring Security 中设置自定义身份验证和角色

标签 java spring spring-security

我扩展了 WebSecurityConfigurerAdapter 来配置自定义身份验证和授权。我引入了一个新的 API,即“/v1/api”。我的要求如下,

  1. 此 API 应该由具有“API_ROLE”角色的实体调用,而没有其他人
  2. 此外,拥有“API_ROLE”的人员不应能够调用系统中的任何其他 API。

我的配置会是什么样子?

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/v1/api**").hasAuthority("ROLE_API");

上面的代码实现了目的1,如何阻止具有此角色的人访问任何其他API?

最佳答案

您可以使用以下 Java 配置。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/v1/api**").hasAuthority("ROLE_API")
        .and().authorizeRequests()
        .antMatchers("/**").not().hasAuthority("ROLE_API");

关于java - 在 Spring Security 中设置自定义身份验证和角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37112800/

相关文章:

java - 如何更改非静态 JLabel 的文本颜色? java

使用转发的 Spring Security 错误页面

java - 如何从安全上下文中的应用程序上下文中使用@Autowiring调用bean

java - 添加多个 mongoTemplates 到 servlet-context

grails - 无法覆盖 AuthenticationSuccessHandler 的 onAuthenticationSuccess 方法

java - 如何强制Spring Security更新XSRF-TOKEN cookie?

java - "Software caused connection abort: socket write error"的官方原因

java - 如何正确关闭使用 Locale 的 Java 扫描仪

java - 从 System.out.println 写入文件

java - 在 JUnit 中加载 spring bean 时出现 OutOfMemory 错误