zoukankan      html  css  js  c++  java
  • Spring security 知识笔记【内存角色授权】

    一、原有的配置文件中,增加注解@EnableGlobalMethodSecurity(prePostEnabled = true)

    二、原有配置文件中,内存新建账号的时候添加角色

    package Eleven.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
    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;
    import org.springframework.security.crypto.password.PasswordEncoder;
    
    @Configuration
    @EnableWebSecurity
    @EnableGlobalMethodSecurity(prePostEnabled = true)
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Bean
        public PasswordEncoder passwordEncoder(){
            return new BCryptPasswordEncoder();
        }
        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder().encode("123456")).roles("admin");
            auth.inMemoryAuthentication().withUser("user").password(passwordEncoder().encode("123456")).roles("normal");
        }
    }

    三、controller里面不同路径授予不同角色访问

    package Eleven.controller;
    
    import org.springframework.security.access.prepost.PreAuthorize;
    import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    
    
    @RestController
    public class AuthenticationTestController {
    
        @GetMapping("/user")
        @PreAuthorize("hasAnyRole('normal')")
        public String helloWorld(){
            return "This is a user page!";
        }
    
    
        @GetMapping("/admin")
        @PreAuthorize("hasAnyRole('admin')")
        public String getAdminInfo(){
            return "This is Admin page!";
        }
    
    
    
    }
  • 相关阅读:
    小米、华为与联想,背后隐含的三种模式(转)
    怎样使用jstack诊断Java应用程序故障(转)
    多线程中的死锁举例与分析(转)
    log4j的性能瓶颈定位与性能优化(org.apache.log4j.spi.RootLogger) (转)
    一个与Log4j相关的死锁(转)
    怎样取消shutdown关机命令?-shutdown命令的使用解析
    对软件体系结构的认识
    39个让你受益的HTML5教程
    5大AR应用窥探移动未来~你见过吗?
    Response.AddHeader使用实例
  • 原文地址:https://www.cnblogs.com/Eleven-Liu/p/11143034.html
Copyright © 2011-2022 走看看