ResourceServerConfig.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.yihu.base.security.config;
  2. import com.yihu.base.security.properties.SecurityProperties;
  3. import com.yihu.base.security.sms.SmsCodeAuthenticationSecurityConfig;
  4. import com.yihu.base.security.sms.filter.SmsvalidateCodeFilter;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Qualifier;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.security.authentication.AuthenticationManager;
  9. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  10. import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
  11. import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
  12. import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
  13. import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager;
  14. import org.springframework.security.oauth2.provider.token.TokenStore;
  15. import org.springframework.security.web.authentication.AuthenticationFailureHandler;
  16. import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
  17. import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
  18. /**
  19. * Created by chenweida on 2017/12/4.
  20. */
  21. @Configuration
  22. @EnableResourceServer //开启资源服务器
  23. public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
  24. @Autowired
  25. protected AuthenticationSuccessHandler authenticationSuccessHandler;
  26. @Autowired
  27. protected AuthenticationFailureHandler authenticationFailureHandler;
  28. @Autowired
  29. private OAuth2AuthenticationManager authenticationManager;
  30. @Autowired
  31. private TokenStore redisTokenStore;
  32. @Autowired
  33. private SmsCodeAuthenticationSecurityConfig smsCodeAuthenticationSecurityConfig;
  34. @Override
  35. public void configure(HttpSecurity http) throws Exception {
  36. //这是账号密码登陆
  37. http
  38. .formLogin()//设置验证码 账号密码登陆
  39. .loginPage(SecurityProperties.formLoginPage)
  40. .loginProcessingUrl(SecurityProperties.formLogin)
  41. .successHandler(authenticationSuccessHandler)
  42. .failureHandler(authenticationFailureHandler)
  43. .and()
  44. .apply(smsCodeAuthenticationSecurityConfig) //添加自定义短信登陆
  45. .and()
  46. .authorizeRequests()
  47. .antMatchers(
  48. SecurityProperties.formLogin,
  49. SecurityProperties.formLoginPage,
  50. SecurityProperties.mobileLogin,
  51. SecurityProperties.mobileSendSms).permitAll()
  52. .anyRequest().authenticated()
  53. //.anyRequest().access("@rbasService.hasPerssion(request,authentication)")
  54. .and()
  55. .csrf().disable();
  56. }
  57. @Override
  58. public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
  59. resources.
  60. authenticationManager(authenticationManager).
  61. tokenStore(redisTokenStore);
  62. }
  63. }