- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法正确配置我的安全配置。无论我在使用时做什么 hasRole
我的端点总是返回 403。
此外,除非我复制我的 antMatchers
,否则我什么也做不了。两者下.requestMatchers()
和 .authorizeRequests()
.我显然在这里遗漏了一些东西。
基本上我希望一切都需要身份验证,但只有在用户是某些组的成员(现在只是管理员)时才能访问一些端点。
我的安全配置如下。旁边的一切hasRole
作品。
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.requestMatchers()
.antMatchers(HttpMethod.GET, "/v2/api-docs", "/swagger-resources/**", "/swagger-ui.html")
.antMatchers(HttpMethod.GET, "/users")
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/v2/api-docs", "/swagger-resources/**", "/swagger-ui.html").permitAll()
.antMatchers(HttpMethod.GET, "/users").hasRole("ADMIN")
.anyRequest().authenticated();
}
// Inspiration: https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#comment-2416096114
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers(HttpMethod.OPTIONS, "/**");
}
}
@Configuration
@EnableResourceServer
public class AuthenticationConfiguration extends GlobalAuthenticationConfigurerAdapter {
private final UserDetailsService userService;
private final PasswordEncoder passwordEncoder;
public AuthenticationConfiguration(UserDetailsService userService, PasswordEncoder passwordEncoder) {
this.userService = userService;
this.passwordEncoder = passwordEncoder;
}
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userService)
.passwordEncoder(passwordEncoder);
}
}
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
private final AuthenticationManager authenticationManager;
public AuthorizationServerConfiguration(AuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager;
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager);
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient("html5")
.secret("password")
.authorizedGrantTypes("password")
.scopes("openid");
}
}
hasRole
旁边工作和
Principal
加载了正确的权限(角色)。但是请让我知道我是否应该发布更多代码。
最佳答案
您是否尝试过使用“ROLE_ADMIN”而不仅仅是“ADMIN”?看看这个以供引用:
Spring security added prefix "ROLE_" to all roles name?
关于spring - hasRole 总是返回 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704951/
我似乎无法正确配置我的安全配置。无论我在使用时做什么 hasRole我的端点总是返回 403。 此外,除非我复制我的 antMatchers,否则我什么也做不了。两者下.requestMatchers
我对 OAuth2 非常陌生,并尝试在角色 auth.server 中构建一台服务器来授权用户,并构建一台保留 protected 资源的服务器... 我在使用 ResourceServerConfi
我想使用 spring security 5.3 像这样在xml上配置
我想禁用特定链接但保留其文本,使其看起来像是被禁用了。我试图在 anchor 标记内放置一个带有特定条件的 th:remove。我在 ThymeLeaf 教程页面上找到了这个: Link text n
这实际上是两个问题,因为它在 Spring Security 引用资料中没有得到很好的解释。第一个问题是,在我的配置中,我有这样的代码: @Override protected void confi
我在使用 Spring Security && Thymeleaf 时遇到了问题,特别是在尝试使用 hasRole 时表达。 'admin' 用户具有角色 'ADMIN' 但 hasRole('ADM
我的 isAuthenticated() 方法有问题。似乎无论用户是否登录,它总是返回 false。此外,调用此方法后,html 代码末尾不会显示任何内容。在此示例中: aaa This c
我有很多方法必须用这个注释来注释: @Override @PostAuthorize("hasPermission(returnObject.id, 'mypackage.SecuredClazz',
在百里叶 Spring 安全方面寻求帮助。我想在 spring security hasRole() 函数中将特定角色作为参数传递。 我只是想将我的角色传递为变量“somevariable”,其值
我在 JSP 中显示属性文件中的某些属性,如下所示: 现在,我想在 中使用相同的属性 ')"> 这是行不通的。 最佳答案 试试这个: 关于java - 使用 Spring :eval insi
我的 Spring Boot 2 + Spring Security 应用程序中有一个角色层次结构: @Bean public RoleHierarchy roleHierarchy() {
我正在尝试保护我的 spring boot 应用程序 (1.21) 的一些 urlpattern看起来我的 antMatchers("/report**").hasRole("REPORT") 被忽略
我无法使用 hasRole @PreAuthorize 中的方法注释。还有 request.isUserInRole(“ADMIN”)给 false .我错过了什么? 虽然 .hasAuthority
我无法在 @PreAuthorize 注释中使用 hasRole 方法。另外 request.isUserInRole(“ADMIN”) 给出 false。我缺少什么?虽然 .hasAuthority
嗨,我是 Spring 的新手,我正在尝试更多地了解安全模型。在我们的项目中,我们控制哪个方法用 注释 @PreAuthorize("hasRole('REPORT_VIEW')") 所以我想知道这个
我正在尝试查看只有管理员可以查看的特定页面,但每次发出请求时都会收到错误消息。它似乎与我的安全上下文文件中的 hasRole() 一起使用。 错误只是说 HTTP 状态 403 - 当我请求查看管理
我想过滤我的查询并仅在用户具有角色“Premium”时返回并将结果限制为 10。 与此查询一起的是 Conversion 拥有的记录计数,并按总列的 DESC 顺序对其进行排序。 现在我有一个工作查询
过去几天我一直在进行故障排除,但我似乎无法让表达式 hasRole 工作。我正在使用 spring-security 4.0.1 我的 spring security xml
假设我的 Spring Security 和属性配置正确,我想使用属性中的角色名称,例如 @PreAuthorize("hasRole('${role.rolename}')") public voi
我想保护我的应用程序,以便任何经过完全身份验证的人都可以访问某些 URL,并且管理员用户也可以访问 admin URL,并且经过完全身份验证。 但现在,我无法找到一种方法来同时使用 fullyAuth
我是一名优秀的程序员,十分优秀!