Spring Security上下文中的角色是什么。如何定义它。我不是在问编码。 Spring Boot中角色的一般定义是什么?有人请给出适当例子的定义
答案 0 :(得分:1)
我假设您正在谈论我们可以在Spring Security中提供的角色。
如果是这样,那么您的问题应该是 Spring Security中的角色。
角色基本上是您授予用户的访问级别。
在上述所有情况下,角色都起着重要的作用。
让我们看看这段代码
@Configuration
@EnableWebSecurity
public class LoginSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder authenticationMgr) throws Exception {
authenticationMgr.inMemoryAuthentication()
.withUser("jduser").password("jdu@123").authorities("ROLE_USER")
.and()
.withUser("jdadmin").password("jda@123").authorities("ROLE_USER","ROLE_ADMIN");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/homePage").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')")
.antMatchers("/userPage").access("hasRole('ROLE_USER')")
.antMatchers("/adminPage").access("hasRole('ROLE_ADMIN')")
.and()
.formLogin().loginPage("/loginPage")
.defaultSuccessUrl("/homePage")
.failureUrl("/loginPage?error")
.usernameParameter("username").passwordParameter("password")
.and()
.logout().logoutSuccessUrl("/loginPage?logout");
}
}
您已经以
的方式配置应用程序 /adminPage
仅应由拥有ROLE_ADMIN
的用户使用
/userPage, /homePage
对ROLE_ADMIN
和ROLE_USER
均可用。
您可以定义您的自定义用户角色。您需要将每个用户与一个角色相关联,并在authorizeRequests中对其进行配置。
您可以找到许多关于此的博客。 Here is one