springSecurity

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private MyUserDetailsService userDetailsService;

    /**
     * 指定加密方式
     */
    @Bean
    public PasswordEncoder passwordEncoder(){
        // 使用BCrypt加密密码
        return new BCryptPasswordEncoder();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
                // 从数据库读取的用户进行身份认证
                .userDetailsService(userDetailsService)
                .passwordEncoder(passwordEncoder());
    }

    /*点击Send按钮后,添加失败,不会返回成功1,看到红框的状态码显示401 Unauthorized,说明无权限,需要登录,但注册用户是不用登录的,
    所以就需要注册用户的请求无需身份验证:*/
    // 配置哪些uri可以直接访问
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers(HttpMethod.POST, "/add-user").permitAll() // 允许post请求/add-user,而无需认证
                .anyRequest().authenticated() // 所有请求都需要验证
                .and()
                .formLogin() // 使用默认的登录页面
                .and()
                .csrf().disable();// post请求要关闭csrf验证,不然访问报错;实际开发中开启,需要前端配合传递其他参数
    }


    @Override
    public void configure(WebSecurity web) throws Exception {
        //所需要用到的静态资源,允许访问
        web.ignoring().antMatchers( "/swagger-ui.html",
                "/swagger-ui/*",
                "/swagger-resources/**",
                "/v2/api-docs",
                "/v3/api-docs",
                "/webjars/**");
    }
}

 @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatchers()
	        .antMatchers("/login")  //  /login无需认证
	        .antMatchers("/oauth/authorize")  // /oauth/authorize无需认证
	        .and()
	        .authorizeRequests()
	        .anyRequest().authenticated() // 所有请求都需要验证
	        .and()
	        .formLogin().loginPage("/login").permitAll()	// 使用自定义登录页面,这里配置了 loginPage, 就会通过 LoginController 的 login 接口加载登录页面
	        .and().csrf().disable();
        
    }
上一篇:configure: error: Cannot find ldap libraries in /usr/lib 解决办法


下一篇:判断输入的数是否是质数