2017-04-17 1 views
0

Je souhaite écrire un test unitaire pour oauth - vérifier si le nom d'utilisateur et le jeton étaient corrects.Test d'unité d'écriture pour Oauth dans une structure de démarrage à ressort

La recherche m'a conduit à cette artical Faking OAuth SSO

Pour l'instant, je suivais la stratégie # 1.

Voici le morceau de code pour lequel j'ai besoin de comprendre les dépendances qu'ils n'ont pas mentionnées directement.

@Test 
public void testGetAuthenticationInfo() throws Exception { 
    MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext) 
      .apply(springSecurity()) 
      .build(); 

    mockMvc.perform(MockMvcRequestBuilders.get("/api/token") 
      .with(authentication(getOauthTestAuthentication())) 
      .sessionAttr("scopedTarget.oauth2ClientContext", getOauth2ClientContext())) 
      .andExpect(status().isOk()) 
      .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) 
      .andExpect(jsonPath("$.username").value("bwatkins")) 
      .andExpect(jsonPath("$.token").value("my-fun-token")); 
} 

j'ai réussi à organiser webApplicationContext comme ci-dessous -

@Autowired 
private WebApplicationContext webApplicationContext; 

Pour la méthode springSecurity(), je suis incapable d'obtenir le droit de la dépendance. Tout ce que j'ai cherché m'a amené à croire que l'importation de org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers. * Me donnera la méthode mais je suis incapable d'obtenir la bonne dépendance pom.

Question 1: Quelqu'un peut-il m'aider à obtenir la dépendance correcte? Question 2: pour un objet standard comme OAuth, n'y a-t-il pas un paquet standard de test de démarrage qui doit simplement être configuré pour tester si oauth fonctionne bien ou pas?

Répondre

0

Cela a été un problème précédemment mentionné dans les numéros de github de sécurité-printemps. Il a fallu un certain temps pour comprendre la bonne version qui est 4.0.2.RELEASE

https://github.com/spring-projects/spring-security/issues/3861

Ajout suivant dans pom.xml résolu le problème.

 <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-test</artifactId> 
     <version>4.0.2.RELEASE</version> 
    </dependency>