Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在控制器中以编程方式实现Spring Security SpEL isFullyAuthenticated()?_Spring_Spring Mvc_Spring Security - Fatal编程技术网

如何在控制器中以编程方式实现Spring Security SpEL isFullyAuthenticated()?

如何在控制器中以编程方式实现Spring Security SpEL isFullyAuthenticated()?,spring,spring-mvc,spring-security,Spring,Spring Mvc,Spring Security,我有一个控制器,我想在其中检查一个完全经过身份验证的用户是否与Spring SecurityisFullyAuthenticated()expression提供的类似。我该怎么做 我使用的解决方案基于下面的Tomasz Nurkiewicz答案,只是从org.springframework.security.access.expression.SecurityExpressionRoot窃取了实现 public class SpringSecurityUtils { private s

我有一个控制器,我想在其中检查一个完全经过身份验证的用户是否与Spring Security
isFullyAuthenticated()
expression提供的类似。我该怎么做

我使用的解决方案基于下面的Tomasz 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);
    }
}

查看和的源代码,您可以使用以下条件:

public boolean isFullyAuthenticated(Authentication auth) {
    return !(auth instanceof AnonymousAuthenticationToken || 
             auth instanceof RememberMeAuthenticationToken);
}
通过以下方式获得身份验证:

SecurityContextHolder.getContext().getAuthentication()
您可以使用以下字符串调用
SecurityContextHolderAwareRequestWrapper的方法或
HttpServletRequest


事实并非如此
isUserInRole()
仅根据
身份验证
对象的权限列表检查提供的字符串
IS\u AUTHENTICATED\u Full
是一个属性,由
AuthenticatedVoter
使用,这是另一回事。@Luke我真的希望SpringSecurity会添加一些公共API来做与Spring Security SPEL Expressions等效的事情!如果你们还没有一个请求,我很乐意为JIRA添加一个请求:)
request.isUserInRole("IS_AUTHENTICATED_FULLY");