0

Spring SessionSecurityMockMvcRequestPostProcessors.userHeaderHttpSessionStrategy.

私は次のようなものを試しました:

mockMvc.perform(
    get(URL)
        .with(user("user").password("pwd").roles("USER", "ADMIN")))
    .andExpect(status().isOk())

しかし、それは 403 を返します。 がなければwith(user(401 を取得するので、違いがあります。

私は以下SecurityConfigを含む失敗した単純なものを持っています:

    http
        .anonymous()
            .and()
        .authorizeRequests()
            .antMatchers("/api/**").hasAuthority("USER")
            .and()
        .csrf()
            .disable()
        .httpBasic()
            .and()
        .requestCache()
            .requestCache(new NullRequestCache());

私はhttps://github.com/spring-projects/spring-session/tree/1.0.1.RELEASE/samples/restのように非常に似ています。私は http basic で認証するエンドポイントを持っているからです。ヘッダーを介して認証トークンを返します。これは、他の REST 呼び出しで使用されます。

with(user(したがって、このシナリオで を使用して、テストを簡単にできることを望んでいました。

4

1 に答える 1

0

はい、これができるはずです。問題はそれです

.with(user("user").password("pwd").roles("USER", "ADMIN")))

これは、ROLE_ プレフィックスが自動的に追加されることを意味します。

対照的に、構成は次を使用しています。

.antMatchers("/api/**").hasAuthority("USER")

これにより、ROLE_ プレフィックスが自動的に追加されません。代わりに、次を使用してみてください。

.antMatchers("/api/**").hasRole("USER")

注: テストも更新して、with(user("user")) の例を含めました。

于 2015-07-09T20:13:43.777 に答える