Spring Boot中的角色是什么

时间:2018-08-06 14:10:06

标签: spring spring-boot model-view-controller spring-security

Spring Security上下文中的角色是什么。如何定义它。我不是在问编码。 Spring Boot中角色的一般定义是什么?有人请给出适当例子的定义

1 个答案:

答案 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, /homePageROLE_ADMINROLE_USER均可用。

您可以定义您的自定义用户角色。您需要将每个用户与一个角色相关联,并在authorizeRequests中对其进行配置。

您可以找到许多关于此的博客。 Here is one