Spring Boot OAuth2资源服务器配置没有反映

时间:2017-07-05 04:32:18

标签: spring-mvc spring-boot spring-oauth2

您好我正在设置Spring引导Oauth2,由于某种原因资源服务器配置无法被识别。

我能够生成持票令牌但是当我尝试点击任何URL时,响应是来自基本http spring security的登录页面。

我的猜测我错过了弹簧启动默认的一些后端内容。

我使用类似的配置来进行正常的弹簧MVC项目并且它起作用了。关于为什么会发生这种情况的任何指示都会有所帮助。

想再添加一个问题spring似乎早先找到了这些配置类我们需要使用@Import一些解释spring如何做到这一点或链接到任何文档也会这样做。

AppStart.java

@SpringBootApplication(scanBasePackages = { "com.spr.*" })
public class AppStart extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(AppStart.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(AppStart.class);
    }
}

AuthorizationServer.java

@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {
    @Autowired
    private TokenStore tokenStore;
    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;
    @Autowired
    private DataSource dataSource;

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {

        clients.inMemory().withClient("confidential").secret("secret").authorizedGrantTypes("password").scopes("read",
                "write");

        // clients.jdbc(dataSource);
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.tokenStore(tokenStore).authenticationManager(authenticationManager);
    }

    @Bean
    @Primary
    public DefaultTokenServices tokenServices() {
        DefaultTokenServices tokenServices = new DefaultTokenServices();
        tokenServices.setSupportRefreshToken(true);
        tokenServices.setTokenStore(tokenStore);
        return tokenServices;
    }

}

AppSecurityConfigs.java

@Configuration
    @EnableWebSecurity
    public class AppSecurityConfigs extends WebSecurityConfigurerAdapter {
        @Autowired
        private DataSource dataSource;

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().withUser("asd").password("asd").authorities("USER");
        }

        @Override
        @Bean
        public AuthenticationManager authenticationManagerBean() throws Exception {
            return super.authenticationManagerBean();
        }

        @Bean
        public TokenStore tokenStore() {
            // return new JdbcTokenStore(dataSource);
            return new InMemoryTokenStore();
        }

    }

ResourceServer

@Configuration
@EnableResourceServer
public class ResourceServer extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(final HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/private/**").hasAuthority("USER");
        http.authorizeRequests().anyRequest().permitAll();
    }

    }

0 个答案:

没有答案