WebSecurityConfiguration.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. package cn.hhj.config;
  2. import cn.hhj.encoder.MyPasswordEncoder;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  6. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  7. import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  8. import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  9. import org.springframework.security.config.http.SessionCreationPolicy;
  10. @Configuration
  11. @EnableWebSecurity
  12. public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
  13. @Autowired
  14. public void configGlobal(AuthenticationManagerBuilder auth) throws Exception {
  15. auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder())
  16. .withUser("QingSe").password("hello").roles("USER")
  17. .and()
  18. .withUser("admin").password("hello").roles("USER", "ADMIN");
  19. }
  20. @Override
  21. protected void configure(HttpSecurity http) throws Exception {
  22. //关闭防止跨域攻击,post无需附带crf
  23. http.csrf().disable();
  24. // 表示所有的访问都必须进行认证处理后才可以正常进行
  25. http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
  26. // 所有的Rest服务一定要设置为无状态,以提升操作性能
  27. http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
  28. }
  29. }