SpringBoot整合SpringSecurity简单案例

在我们开发项目的过程中经常会用到一些权限管理框架,Java领域里边经常用的可能就是shiro了,与之对应的还有SpringSecurity,SpringSecurity可以说是非常强大,与Spring可以无缝整合,但是学习难度也高,今天给大家分享一个demo级别的。

pom.xml加入以下依赖:


    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.boot
        spring-boot-starter-security
    
    
        org.springframework.boot
        spring-boot-starter-thymeleaf
    

创建一个页面:home.html



    
        Spring Security Example
    
    
        

Welcome!

Click here to see a greeting.

hello.html



    
        Hello World!
    
    
        

Hello [[${#httpServletRequest.remoteUser}]]!

配置MVC端点:

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }

}

SpringSecurity配置

@Configuration
@EnableWebSecurity 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { <1>
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http 
            .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth 
            .inMemoryAuthentication()
                .withUser("admin").password("admin").roles("USER");
    }
}

登录页面如下:



    
        Spring Security Example 
    
    
        
Invalid username and password.
You have been logged out.

启动类:

@SpringBootApplication
public class Application {

    public static void main(String[] args) throws Throwable {
        SpringApplication.run(Application.class, args);
    }

}

有问题可以在下面评论,技术问题可以私聊我。

转载于:https://www.cnblogs.com/c1024/p/11011998.html

你可能感兴趣的:(SpringBoot整合SpringSecurity简单案例)