美文网首页
SpringBoot集成SpringSecurity

SpringBoot集成SpringSecurity

作者: Alse | 来源:发表于2021-11-12 19:38 被阅读0次

1、pom依赖

<!--spring secruty-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2、Config类

import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //添加授权
        http.authorizeRequests()
                .antMatchers("/user/vip1").hasRole("vip1")
                .antMatchers("/user/vip2").hasRole("vip2")
                .antMatchers("/user/vip3").hasRole("vip3");

//        没有权限,默认会到登录页面,需要开启登录的页面 /login
        http.formLogin();

//        注销,注销成功后跳转到首页
        http.logout().logoutSuccessUrl("/");
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//        认证, 这里用缓存里生成的用户,也可以通过数据库获得用户
        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("admin").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3")
                .and()
                .withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");
    }
}

3、Controller

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserVipController {

    @RequestMapping("/login")
    public String login() {
        return "login success";
    }

    @RequestMapping("/vip1")
    public String vip1() {
        return "vip1";
    }

    @RequestMapping("/vip2")
    public String vip2() {
        return "vip2";
    }

    @RequestMapping("/vip3")
    public String vip3() {
        return "vip3";
    }
}

相关文章

网友评论

      本文标题:SpringBoot集成SpringSecurity

      本文链接:https://www.haomeiwen.com/subject/qmuzzltx.html