SpringBoot集成SpringSecurity(三注解方式配置权限)

Posted 伍妖捌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot集成SpringSecurity(三注解方式配置权限)相关的知识,希望对你有一定的参考价值。

前言

在前面已经介绍了通过内存方式配置用户,我们接着上一节继续介绍通过权限配置
在这里插入图片描述

权限配置

添加用户

在上一节的基础上,我们再添加一个用户名为admin,密码123,权限admin的用户。

	@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("user")
                .password(passwordEncoder().encode("123"))
                .authorities("user");
        auth.inMemoryAuthentication()
                .withUser("admin")
                .password(passwordEncoder().encode("123"))
                .authorities("admin");
    }

代码很简单一目了然,不做过多解释。

访问权限

还是在SpringSecurityConfig类中添加EnableGlobalMethodSecurity(prePostEnabled = true)注解
在这里插入图片描述

添加接口

之前在一、初体验中创建过Controller了,这里只需要在此基础上添加以下代码。

    @GetMapping("user")
    @PreAuthorize("hasAuthority('user')")
    public String user(){
        return "user";
    }

    @GetMapping("admin")
    @PreAuthorize("hasAuthority('admin')")
    public String admin(){
        return "admin";
    }

/user需要有user权限;/admin需要有admin权限
这里准备工作都已经准备好了,启动项目,进行验证

权限验证

在浏览器中访问http://localhost:8080/会自动跳转到登录页面。

验证user用户

通过user用户登录,浏览器打印index。继续访问http://localhost:8080/user接口,浏览器成功打印出user。
在这里插入图片描述
继续访问http://localhost:8080/admin接口,返回403,代表没有权限。
在这里插入图片描述

退出

通过http://localhost:8080/logout将user用户退出。

验证admin用户

通过admin用户登录,浏览器打印index。
继续访问http://localhost:8080/admin接口,浏览器成功打印出admin。
在这里插入图片描述
继续访问http://localhost:8080/user接口,返回403,代表没有权限。
在这里插入图片描述
做到这里,说明注解方式配置权限已经完成。

以上是关于SpringBoot集成SpringSecurity(三注解方式配置权限)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot项目启动后访问任意接口都会跳转到一个莫名其妙的login登录页面

SpringSecurity解决跨域问题,在SpringBoot整合SprinSecurity中如何用前后端分离Ajax登录,Ajax登录返回状态200还是近error

001.camunda入门(springboot集成篇)

在邮递员上发布请求但不在浏览器中(代码状态:415) - Spring Boot,thymeleaf

springboot集成ES,以及应用

SpringBoot集成Kafka