2016-03-22 18 views
1

Yay önyükleme projem var. bir istek yanlış kullanıcı kimlik bilgileriyle hale getirildiğinde:Kullanıcı adıNotFoundException, önyükleme sırasında 403 olarak atıldı

catch (RuntimeException ex) { 
     log.error("Error occurred while fetching user {}: {}", securityPrincipal, ex); 
     throw new UsernameNotFoundException("Could not find user: " + securityPrincipal); 
    } 

Fakat sonunda atılan istisna bir 500.

bağlantıların bir dizi geçmekte sonra bunu buldum geçerli:

protected AbstractPreAuthenticatedProcessingFilter multiPreAuthenticatedProcessingFilter() throws Exception { 

     MultiPreAuthenticatedProcessingFilter filter = new MultiPreAuthenticatedProcessingFilter(); 

     filter.setAuthenticationManager(authenticationManager()); 
     filter.setPreAuthenticatedPrincipalProviders(preAuthenticatedPrincipalProviders); 
     filter.setCheckForPrincipalChanges(true); 
     filter.setInvalidateSessionOnPrincipalChange(true); 
     filter.setContinueFilterChainOnUnsuccessfulAuthentication(**true**); 

     return filter; 
    } 

continueFilterChainOnUnsuccesfulAuthentication değiştirme true, Kimlik Doğrulama özel durumunun olduğu gibi atılmasına yardımcı olur. Ancak bu doğru olarak değiştirildikten sonra, UsernameNotFoundException 401 yerine 403 olarak atılır.

Eksik bazı temel güvenlik yapılandırması var mı?

+0

Bunun için cevabı buldunuz mu? – Scooby

+0

@Scooby - Hayır. Henüz değil. –

+0

gerçekten 401'i atmanız gerekiyorsa, neden @controllerAdvice ile bir exceptionHandler yaratmıyorsunuz ve ihtiyacınız olan durum kodunu atayınız. Bu bağlantıda tüm detaylar var. https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc –

cevap

2

401 yerine bir 403 işlevi, HTTP özelliklerine göre kesinlikle doğrudur ve bu nedenle kimlik bilgileri sağlanmıştır ve doğru değildir. 401'i döndürmek, kullanıcının erişim kimlik bilgilerini belirtmesi gerektiğini gösterir.

Bkz:

GÜNCELLEME

Aslında bu değil% 100 net neden RFC 7235 kimlik eğer 401 döndürülebilir söylüyor sağlanan yanlış.

İlgili konular