zoukankan      html  css  js  c++  java
  • Spring Security 自定义配置(1)

    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
        //ip认证者配置
        @Bean
        IpAuthenticationProvider ipAuthenticationProvider() {
            return new IpAuthenticationProvider();
        }
    
        //配置封装ipAuthenticationToken的过滤器
        IpAuthenticationProcessingFilter ipAuthenticationProcessingFilter(AuthenticationManager authenticationManager) {
            IpAuthenticationProcessingFilter ipAuthenticationProcessingFilter = new IpAuthenticationProcessingFilter();
            //为过滤器添加认证器
            ipAuthenticationProcessingFilter.setAuthenticationManager(authenticationManager);
            //重写认证失败时的跳转页面
            ipAuthenticationProcessingFilter.setAuthenticationFailureHandler(new SimpleUrlAuthenticationFailureHandler("/ipLogin?error"));
            return ipAuthenticationProcessingFilter;
        }
    
        //配置登录端点
        @Bean
        LoginUrlAuthenticationEntryPoint loginUrlAuthenticationEntryPoint(){
            LoginUrlAuthenticationEntryPoint loginUrlAuthenticationEntryPoint = new LoginUrlAuthenticationEntryPoint
                    ("/ipLogin");
            return loginUrlAuthenticationEntryPoint;
        }
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/", "/home").permitAll()
                    .antMatchers("/ipLogin").permitAll()
                    .anyRequest().authenticated()
                    .and()
                .logout()
                    .logoutSuccessUrl("/")
                    .permitAll()
                    .and()
                .exceptionHandling()
                    .accessDeniedPage("/ipLogin")
                    .authenticationEntryPoint(loginUrlAuthenticationEntryPoint())
            ;
    
            //注册IpAuthenticationProcessingFilter  注意放置的顺序 这很关键
            http.addFilterBefore(ipAuthenticationProcessingFilter(authenticationManager()), UsernamePasswordAuthenticationFilter.class);
    
        }
    
        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.authenticationProvider(ipAuthenticationProvider());
        }
    
    }
    
  • 相关阅读:
    预处理器宏指令(Macro)
    汇编语言中macro的用法
    USB设备的VID与PID
    前端工具 | JS编译器Monaco使用教程
    vue + ts中的shimsvue.d.ts文件的作用,在ts中引入vueecharts等vue文件 TypeScript 导入 JSON Module resolveJsonModule
    Jenkins自动打包并部署到远程服务器
    如何获取设备的VID,PID?
    TypeScript装饰器(decorators)
    MACRO指令
    IE6左右边框断线现象
  • 原文地址:https://www.cnblogs.com/leihuazhe/p/7846266.html
Copyright © 2011-2022 走看看