0
我希望我的授權機制返回默認用戶,如果未指定BacicAuth的標頭。我試圖這樣做:Dropwizard Auth - 如果沒有給出標題,如何返回默認用戶?
@Override
public Optional<User> authenticate(final BasicCredentials basicCredentials) throws AuthenticationException {
String email = basicCredentials.getUsername();
String plaintextPassword = basicCredentials.getPassword();
final Optional<User> user = Optional.of(userDao.getUserByEmail(email));
if (user.isPresent()) {
return user;
}
else {
return Optional.of(defaultUser);
}
}
但是,不知何故,我仍然得到401時,我沒有正確的標題做出請求。
我該如何讓它工作?
由於註冊吧!它工作得很好 – VanDavv
問題是,如果您使用過濾器,爲什麼不立即在該過濾器中進行身份驗證?在我看來,DW認證有點缺陷,因爲它帶走了一些我認爲很重要的控制權。我更喜歡使用DW的方法在過濾器中進行身份驗證。很多人遇到了我認爲的同樣的問題。 – pandaadb
authN/authZ鏈中有幾個過濾器。首先是認證過濾器。 Dropwizard在此過濾器中使用您的驗證器。 Jersey授權(rolesallowed)過濾器,它調用您的授權人。所以不同的濾鏡處理不同的事情也許你看到有缺陷的不是過程,而是認證過濾器的實現。對於你特定的用例,是的,我同意這是一個負擔,必須使用這項工作。但這只是它的實現。 –