gpt4 book ai didi

Java Spring Security 无法识别的角色

转载 作者:行者123 更新时间:2023-11-30 07:16:24 26 4
gpt4 key购买 nike

任务是创建一个可以由具有不同角色的不同用户访问的 Web 应用程序。有些角色可以看到所有页面,有些角色只能看到少数页面。

我有以下 SecurityConfig 配置,但它不起作用。

@Configuration
@EnableWebSecurity
@Import(value = { SecurityWebApplicationInitializer.class })
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
DataSource dataSource;

@Autowired
private AuthenticationService authenticationService;

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
Md5PasswordEncoder encoder = new Md5PasswordEncoder();
auth.userDetailsService(authenticationService).passwordEncoder(encoder);
}

@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/assets/**");
}

@Override
protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests()
.antMatchers("/login", "/page1").permitAll()
.antMatchers("/**").access("hasRole('RADMIN')")
.antMatchers("/login", "/page2").access("hasRole('ADMIN')")
.antMatchers("/page2").hasAnyRole("RADMIN", "ADMIN")
.and().formLogin()
.and().exceptionHandling().accessDeniedPage("/403");

}

}

我尝试将 hasAnyRole() 更改为 hasAnyAuthority(),但没有效果。几乎我所做的每项更改要么不让管理员登录(他只能看到/403 或/404),要么让任何人(无论是否授权)查看所有内容。

最佳答案

嗯...这个问题实在是太愚蠢了。

似乎其中一个提交的数据库名称已更改,因此没有角色(ROLE_NONE)来进行身份验证...

关于Java Spring Security 无法识别的角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332015/

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