我有一個控制器,我想檢查一下完全認證的用戶是否與Spring Security isFullyAuthenticated()
表達式提供的類似。我怎麼做?如何在控制器中以編程方式實現Spring Security SpEL isFullyAuthenticated()?
解決方案我使用基於托馬斯Nurkiewicz回答以下,只是偷實現從org.springframework.security.access.expression.SecurityExpressionRoot
public class SpringSecurityUtils {
private static final AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl();
public static boolean isFullyAuthenticated()
{
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return !trustResolver.isAnonymous(authentication) && !trustResolver.isRememberMe(authentication);
}
}
這不是真的。 'isUserInRole()'只檢查提供的字符串與'Authentication'對象的權限列表。 'IS_AUTHENTICATED_FULLY'是'AuthenticatedVoter'消耗的一個屬性,這是一個不同的東西。 –
@Luke我真的希望SpringSecurity能夠添加一些公共API來做Spring Security SPEL的壓制!我很高興向JIRA添加一個請求,如果你們還沒有一個:) – ams