gpt4 book ai didi

java - 如何使用Spring Security根据角色限制对html页面的访问?

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:08 25 4
gpt4 key购买 nike

我希望用户能够根据他们的角色访问 html 页面。例如,只有具有 HR 角色的人员才应该能够查看 settings.html 页面,而只有那些担任经理的人员才能看到endingrequest.html。

这是我的安全配置:

    @Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private DatabaseAuthenticationProvider authenticationProvider;


@Override
public void configure(WebSecurity web) throws Exception {

web.ignoring().antMatchers("/js/**", "/css/**", "/img/**");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http.formLogin().loginPage("/login").failureUrl("/login").defaultSuccessUrl("/")
.and().logout().logoutSuccessUrl("/login")
.and().authorizeRequests().antMatchers("/login").permitAll()
.antMatchers("/settings.html").hasRole("HR")
.antMatchers("/pendingRequests.html").hasRole("MANAGER")
.antMatchers("/settings.html","/pendingRequests.html").hasRole("ADMIN")
.anyRequest().authenticated().and().csrf().disable();
}



@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {

auth.authenticationProvider(authenticationProvider).eraseCredentials(false);
}
}

出于某种原因,我在那里尝试的方法不起作用,无论我担任什么角色,我都无法看到这些页面。

最佳答案

Spring security 默认情况下为安全检查中定义的所有角色添加 ROLE_ 前缀。

您可以将角色名称重命名为具有 ROLE_ 前缀,或从配置中删除该前缀 ( How do I remove the ROLE_ prefix from Spring Security with JavaConfig? )

关于java - 如何使用Spring Security根据角色限制对html页面的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39042374/

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