美文网首页Spring
Spring-Security权限管理 (2)

Spring-Security权限管理 (2)

作者: Marlon666 | 来源:发表于2018-03-28 15:20 被阅读4次

    安全配置类
    控制器

    配置

    @EnableWebSecurity   //启用web安全 注解
    @EnableGlobalMethodSecurity(prePostEnabled = true) // 启用方法安全设置
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        private static final String KEY = "fucktheworld.com"; 
    
        @Autowired
        private UserDetailsService userDetailsService;
    
        @Autowired
        private PasswordEncoder passwordEncoder;
    
        @Bean
        public PasswordEncoder passwordEncoder() {
            return new BCryptPasswordEncoder();   // 使用 BCrypt 加密
        }
    
        @Bean
        public AuthenticationProvider authenticationProvider() {
            DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
            authenticationProvider.setUserDetailsService(userDetailsService);
            authenticationProvider.setPasswordEncoder(passwordEncoder); // 设置密码加密方式
            return authenticationProvider;
        }
    
        /**
         * 自定义配置
         */
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().antMatchers("/css/**", "/js/**", "/fonts/**", "/index").permitAll() // 都可以访问
                    .antMatchers("/h2-console/**").permitAll() // 都可以访问
                    .antMatchers("/admins/**").hasRole("ADMIN") // 需要相应的角色才能访问
                    .and()
                    .formLogin()   //基于 Form 表单登录验证
                    .loginPage("/login").failureUrl("/login-error") // 自定义登录界面
                    .and().rememberMe().key(KEY)  // 启用 remember me
                    .and().exceptionHandling().accessDeniedPage("/403");  // 处理异常,拒绝访问就重定向到 403 页面
            http.csrf().ignoringAntMatchers("/h2-console/**"); // 禁用 H2 控制台的 CSRF 防护
            http.headers().frameOptions().sameOrigin(); // 允许来自同一来源的H2 控制台的请求
        }
    
        /**
         * 认证信息管理
         *
         * @param auth
         * @throws Exception
         */
        @Autowired
        public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
            auth.userDetailsService(userDetailsService);
            auth.authenticationProvider(authenticationProvider());
        }
    
    
    }
    

    相关文章

      网友评论

      • IT人故事会:做开发很累,还的学习,之前你这个我也碰到过,但是没记录谢谢了

      本文标题:Spring-Security权限管理 (2)

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