Когда я отправляю запрос PUT с правильным именем пользователя и паролем, он работает нормально.
Но когда я отправляю запрос с неверным паролем, я получаю 401, что нормально, но у меня есть 2 заголовка WWW-Authenticate:
Заголовки ответа:
HTTP / 1.1 401
WWW-Аутентификация: область дайджеста = "NOKIA.COM", qop = "auth", nonce = "MTU1MjM3MDk2MDQ2MjpmOWNjYjVmNGU5ODA0ZmY0YWY0MjIxNDlhY21002 **2 = 8) **88 = 8) **288 = 8) **8
X-Content-Type-Options: nosniff
X-XSS-защита: 1; Режим = Блок
Cache-Control: no-cache, no-store, max-age = 0, обязательно повторная проверка
Прагма: без кеша
Истекает: 0
X-Frame-Options: DENY
WWW-Аутентификация: область дайджеста = "NOKIA.COM", qop = "auth", nonce = "MTU1MjM3MDk2MDQ2NjoxOTQ4MDhjNzBjYjkyMGI1Y2Q2YjU3OGMyM3O2 = 1016E62E62E62E62E62E62E62E62E62E61E61E61E6 = 66ME2N2 = 66ME2N0 = 1016E6N0 = 1016E6N0 = 1016E6N0 = 1016E6N0 = 1016E2N0 = 1016E6N0 = 1016E2N0 = 1016E2N0 = 1016E2N0 = 1016E2N0 = 1016E2N0 = 1016E2N2 = 1016E2N2 = 1016E2N2 = 1016E2N2 = 1016E1 = 2
Длина содержимого: 0
Дата: вторник, 12 марта 2019 года, 06:08:20 GMT
@EnableWebSecurity
@ Configuration
@Составная часть
открытый класс WebSecurityConfig расширяет WebSecurityConfigurerAdapter
{
@Autowired
DummyUserService userDetail;
@Autowired
DigestAuthenticationFilter digestFilter;
@Autowired
DigestAuthenticationEntryPoint digestEntryPoint;
@Override
protected void configure( HttpSecurity http ) throws Exception
{
http.addFilter(digestFilter) // register digest entry point
.exceptionHandling().authenticationEntryPoint(digestEntryPoint) // on exception ask for digest authentication
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and().csrf().disable();
http.httpBasic().disable();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new PasswordEncoder() {
@Override
public String encode(CharSequence rawPassword) {
return rawPassword.toString();
}
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
return rawPassword.toString().equals(encodedPassword);
}
};
}
}
@Bean
DigestAuthenticationFilter digestFilter( DigestAuthenticationEntryPoint digestAuthenticationEntryPoint,
UserCache digestUserCache, UserDetailsService userDetailsService )
{
DigestAuthenticationFilter filter = new DigestAuthenticationFilter();
filter.setAuthenticationEntryPoint( digestAuthenticationEntryPoint );
filter.setUserDetailsService( userDetailsService );
filter.setUserCache( digestUserCache );
return filter;
}
@Bean
UserCache digestUserCache() throws Exception
{
return new SpringCacheBasedUserCache( new ConcurrentMapCache( "digestUserCache" ) );
}
@Bean
DigestAuthenticationEntryPoint digestAuthenticationEntry()
{
DigestAuthenticationEntryPoint digestAuthenticationEntry = new DigestAuthenticationEntryPoint();
digestAuthenticationEntry.setRealmName( "XXX.COM" );
digestAuthenticationEntry.setKey( "XXX" );
digestAuthenticationEntry.setNonceValiditySeconds( 60 );
return digestAuthenticationEntry;
}
Пожалуйста, кто-нибудь может мне помочь. Большое спасибо!