2016-11-01 3 views
0

Я пытаюсь повторить пример «Весенняя загрузка и OAuth2» от tutorial.Весенняя загрузка и пример OAuth2: перенаправление не работает

Я запускаю пример с помощью «gradlew bootRun». Он работает над Windows без проблем, но у меня проблема с Ubuntu 14.04. Когда я нажал кнопку «Войти», служба не выполняет перенаправление на сервер авторизации (например, facebook) и через несколько минут возвращается с тайм-аутом.

журнал сервиса содержит следующие строки:

o.s.s.w.u.matcher.AntPathRequestMatcher : Request 'GET /login' doesn't match 'POST /logout 
o.s.security.web.FilterChainProxy  : /login at position 6 of 12 in additional filter chain; firing Filter: 'OAuth2ClientAuthenticationProcessingFilter' 
o.s.s.w.u.matcher.AntPathRequestMatcher : Checking match of request : '/login'; against '/login' 
uth2ClientAuthenticationProcessingFilter : Request is to process authentication 

Я был бы признателен за любую помощь. Спасибо.

Исходный код учебника, расположенного на github

Мой исходный код приведены ниже:

build.gradle

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.1.RELEASE") 
    } 
} 

apply plugin: 'java' 
apply plugin: 'idea' 
apply plugin: 'spring-boot' 
sourceCompatibility = '1.8' 
targetCompatibility = '1.8' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile("org.springframework.boot:spring-boot-starter-security") 
    compile("org.springframework.boot:spring-boot-starter-web") 
    compile("org.springframework.security.oauth:spring-security-oauth2") 

    compile("org.webjars:webjars-locator") 
    compile("org.webjars:angularjs:1.4.3") 
    compile("org.webjars:jquery:2.1.1") 
    compile("org.webjars:bootstrap:3.2.0") 

    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

application.yml

security: 
    oauth2: 
    client: 
     clientId: 233668646673605 
     clientSecret: 33b17e044ee6a4fa383f46ec6e28ea1d 
     accessTokenUri: https://graph.facebook.com/oauth/access_token 
     userAuthorizationUri: https://www.facebook.com/dialog/oauth 
     tokenName: oauth_token 
     authenticationScheme: query 
     clientAuthenticationScheme: form 
    resource: 
     userInfoUri: https://graph.facebook.com/me 

logging: 
    level: 
    org.springframework.security: DEBUG 

SocialApplication.java

@SpringBootApplication 
@EnableOAuth2Sso 
@RestController 
public class SocialApplication extends WebSecurityConfigurerAdapter { 

    @RequestMapping("/user") 
    public Principal user(Principal principal) { 
     return principal; 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**", "/webjars/**").permitAll() 
       .anyRequest().authenticated() 
       .and().logout().logoutSuccessUrl("/").permitAll() 
       .and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(SocialApplication.class, args); 
    } 
} 

ответ

0

Тайм-аут был вызван безопасным случайным вызовом.

Решение для меня следующие строки:

bootRun { 
    jvmArgs = ["-Djava.security.egd=file:/dev/./urandom"] 
}