gpt4 book ai didi

基于 Java 的配置以启用 spring security 匿名访问

转载 作者:搜寻专家 更新时间:2023-10-31 20:18:18 24 4
gpt4 key购买 nike

我想启用 "ROLE_ANONYMOUS" 以允许匿名访问我的应用程序中的某些网址。我使用了以下配置。

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.requestCache()
.requestCache(new NullRequestCache()).and()
.anonymous().authorities("ROLE_ANONYMOUS").and()
.exceptionHandling().and()
.servletApi().and()
.headers().cacheControl().and()
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/profile/image").permitAll()
.antMatchers("/favicon.ico").permitAll()
.antMatchers("/resources/**").permitAll()

//.antMatchers(HttpMethod.GET, "/login/**").permitAll()
//.antMatchers(HttpMethod.GET, "/location/**").permitAll()

.anyRequest().authenticated()/*.and()
.apply(new SpringSocialConfigurer())*/;

// custom Token based authentication based on the header previously given to the client
//.addFilterBefore(new StatelessAuthenticationFilter(tokenAuthenticationService), UsernamePasswordAuthenticationFilter.class);
}

我的 Controller 看起来像:

@RestController
@RequestMapping(value="/login", produces="application/json")
public class LoginController {


@Secured( value={"ROLE_ANONYMOUS"})
@RequestMapping(method=RequestMethod.GET)
public String get(){
return "hello";
}
}

但是当我尝试点击“/login”时,我得到了 403 拒绝访问错误。请帮助我如何启用基于注释的匿名访问。

最佳答案

这应该可以解决您的问题。

@Override
protected void configure(HttpSecurity http) throws Exception {
http
...
.formLogin().loginPage("/login").permitAll()
...

但是,如果您不想使用 permitAll 而是坚持使用匿名角色用户(这在两种情况下效果相同,但如果您愿意的话),请在 Controller 中尝试此操作。

@Secured("ROLE_ANONYMOUS")
@RequestMapping(method=RequestMethod.GET)
public String get(){
...

关于基于 Java 的配置以启用 spring security 匿名访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com