我想用Spring保护我的HATEOAS REST API构建。所有请求都需要授权,将请求发布到“/rooms”需要管理员角色。我的WebSecurityConfigureAdapter实现代码现在看起来像这样:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
// Todo: Make sure that all resources need to be authenticated and POST rooms needs ADMIN role
.anyRequest().authenticated()
.antMatchers(HttpMethod.POST, "/api/v1/rooms").hasRole("ADMIN")
.and()
.httpBasic()
.and()
.csrf().disable();
}
现在,如果我把“anyRequest().authenticated()”行放在“antMatchers…”之前,所有资源都只需要身份验证行,但所需的“管理员”角色不起作用或无法应用,反之亦然。
我怎样才能让这两件事同时进行呢?
谢谢你弗洛里安
下面的代码为我做到了:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/api/v1/rooms").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.httpBasic()
.and()
.csrf().disable();
}
}
谢谢你的回复。
Securityconfiguration.java
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().authorizeRequests().antMatchers("/public/**")
.permitAll().antMatchers("/sa/**").hasAuthority("sa")
.antMatchers("/admin/**").hasAuthority("admin")
.and().logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/index.html").and()
.addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class)
.csrf().disable();
}
在rest控制器中使用。。
@RequestMapping("/admin/adduser")
public void addUser(@RequestBody User user) {
authService.addUser(user);
}
> 。 有些帖子说x509是用来生成自签名证书的。 但使用时出错: 请告诉我哪条路是正确的。如果是正确的,如何解决错误?非常感激!
我有一个使用Spring Cloud OpenFeign的多服务应用程序。现在我必须在应用程序中使用zipkin。我记得,当我有一个没有伪装的应用程序时,我只是添加了Sleuth和Zipkin启动器依赖项,并在端口9411上运行Zipkin服务器。在那之后,齐普金工作得很好。。但现在,当我在我的应用程序中尝试使用Faign时,我得到错误500“需要原始请求”。我猜当侦探添加跟踪信息时,Faign在
我在spring安全中的注册权限有问题 我不能注册方法 我试图设置对每条路径的访问,但没有帮助 控制器 安全配置 用户服务 用户模型 错误 java.lang.IllegalArgumentException:在org.springframework.util.assert.hastext(assert.java:284)~[spring-core-5.2.4.release.jar:5.2.4.
我将只同意graph API中的特定管理权限。 但它请求所有租户权限。 当前逻辑为 如何请求对特定权限的同意?
以下是发送给ADFS的SAML请求 压缩并转换为Base64String后,它被重定向到ADFS。带有SAML请求的URL如下所示 https://XXXX.YYYY.ZZZZ/adfs/ls/?SAMLRequest=hZHNbsIwEIRfJfLdsfODAhZEouVQJKpGJO2hl8okS7Ga2KnXoTx+A0KLuncjrflmz3Bnkju6fcvohfqwjta561xc/I
以前一直用 vue3,现在在学习用 nuxt3,遇到一个传 token 的问题,研究半天没明白,nuxt3 这个 token 要怎么请求的时候传过去? 我先讲下我的 vue3 是怎么用的 用户第一次访问网站,检查 localStorage.getItem('token') 是否为空,如果为空或token过时,直接跳到登录页面,登录后获取 token 存放到 localStorage.setItem