ZuulTokenConfiguration.java

  1. package cn.home1.oss.lib.security.internal.zuul;

  2. import static cn.home1.oss.boot.autoconfigure.AppSecurity.ENABLED;
  3. import static cn.home1.oss.lib.security.api.GenericUser.GENERIC_USER_TOKEN;

  4. import cn.home1.oss.boot.autoconfigure.ConditionalOnAppSecurity;
  5. import cn.home1.oss.lib.security.api.GenericUser;
  6. import cn.home1.oss.lib.security.starter.WebApplicationSecurityAutoConfiguration;
  7. import cn.home1.oss.lib.webmvc.api.TypeSafeToken;

  8. import com.netflix.zuul.ZuulFilter;

  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Qualifier;
  11. import org.springframework.boot.autoconfigure.AutoConfigureAfter;
  12. import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  13. import org.springframework.cloud.client.actuator.HasFeatures;
  14. import org.springframework.cloud.context.named.NamedContextFactory;
  15. import org.springframework.context.annotation.Bean;
  16. import org.springframework.context.annotation.Configuration;

  17. /**
  18.  * Created by zhanghaolun on 16/11/22.
  19.  */
  20. @AutoConfigureAfter({WebApplicationSecurityAutoConfiguration.class})
  21. @ConditionalOnAppSecurity(ENABLED)
  22. @ConditionalOnClass({HasFeatures.class, NamedContextFactory.class, ZuulFilter.class})
  23. @Configuration
  24. public class ZuulTokenConfiguration {

  25.   @Qualifier(GENERIC_USER_TOKEN)
  26.   @Autowired
  27.   private TypeSafeToken<GenericUser> genericUserToken;

  28.   @Bean
  29.   public ContextAuthTokenZuulFilter contextAuthTokenZuulFilter() {
  30.     final ContextAuthTokenZuulFilter filter = new ContextAuthTokenZuulFilter();
  31.     filter.setToken(this.genericUserToken);
  32.     return filter;
  33.   }
  34. }