Example usage for org.springframework.security.access.expression.method DefaultMethodSecurityExpressionHandler setTrustResolver

List of usage examples for org.springframework.security.access.expression.method DefaultMethodSecurityExpressionHandler setTrustResolver

Introduction

In this page you can find the example usage for org.springframework.security.access.expression.method DefaultMethodSecurityExpressionHandler setTrustResolver.

Prototype

public void setTrustResolver(AuthenticationTrustResolver trustResolver) 

Source Link

Document

Sets the AuthenticationTrustResolver to be used.

Usage

From source file:org.bremersee.common.spring.autoconfigure.AclPermissionEvaluatorAutoConfiguration.java

@PostConstruct
public void init() {
    // @formatter:off
    LOG.info("\n" // NOSONAR
            + "**********************************************************************\n"
            + "*  ACL Permission Evaluator Auto Configuration                       *\n"
            + "**********************************************************************\n" + "* - aclService = "
            + aclService + "\n" + "* - objectIdentityRetrievalStrategy = " + objectIdentityRetrievalStrategy
            + "\n" + "* - objectIdentityGenerator = " + objectIdentityGenerator + "\n"
            + "* - sidRetrievalStrategy = " + sidRetrievalStrategy + "\n" + "* - permissionFactory = "
            + permissionFactory + "\n" + "* - trustResolver = " + trustResolver + "\n"
            + "* - parameterNameDiscoverer = " + parameterNameDiscoverer + "\n"
            + "* - permissionCacheOptimizer = " + permissionCacheOptimizer + "\n"
            + "* - methodSecurityExpressionHandler = " + methodSecurityExpressionHandler + "\n"
            + "**********************************************************************");
    // @formatter:on
    if (methodSecurityExpressionHandler instanceof DefaultMethodSecurityExpressionHandler) {
        DefaultMethodSecurityExpressionHandler expressionHandler = (DefaultMethodSecurityExpressionHandler) methodSecurityExpressionHandler;
        expressionHandler.setPermissionEvaluator(permissionEvaluator());
        expressionHandler.setDefaultRolePrefix(aclProperties.getDefaultRolePrefix());
        expressionHandler.setParameterNameDiscoverer(parameterNameDiscoverer);
        expressionHandler.setTrustResolver(trustResolver);
        expressionHandler.setPermissionCacheOptimizer(permissionCacheOptimizer);
    } else {//from  www .  ja  v  a2s .  c o m
        StringBuilder logMsgBuilder = new StringBuilder();
        logMsgBuilder.append("######################################################################\n");
        if (methodSecurityExpressionHandler == null) {
            logMsgBuilder.append("# The Method Security Expression Handler is NULL.                    #\n");
        } else {
            logMsgBuilder.append("# The Method Security Expression Handler is NOT an instance of       #\n");
            logMsgBuilder.append("# DefaultMethodSecurityExpressionHandler.                            #\n");
        }
        logMsgBuilder.append("#                                                                    #\n"); // NOSONAR
        logMsgBuilder.append("# The beans of the ACL configuration cannot be applied to it.        #\n");
        logMsgBuilder.append("# Security method expressions like                                   #\n");
        logMsgBuilder.append("# hasPermission(#name, 'Role', 'write') won't work.                  #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("# Please provide a configuration like this:                          #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("# @Configuration                                                     #\n");
        logMsgBuilder.append("# @EnableGlobalMethodSecurity(prePostEnabled = true, ...)            #\n");
        logMsgBuilder.append("# public class MethodSecurityConfig                                  #\n");
        logMsgBuilder.append("#              extends GlobalMethodSecurityConfiguration {           #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("#     final DefaultMethodSecurityExpressionHandler handler =         #\n");
        logMsgBuilder.append("#         new DefaultMethodSecurityExpressionHandler();              #\n");
        logMsgBuilder.append("#         // or new OAuth2MethodSecurityExpressionHandler()          #\n");
        logMsgBuilder.append("#         // if you want to use security annotation like this:       #\n");
        logMsgBuilder.append("#         // @PreAuthorize(\"#oauth2.hasScope('requiredScope')\")      #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("#     @Override                                                      #\n");
        logMsgBuilder.append("#     MethodSecurityExpressionHandler createExpressionHandler() {    #\n");
        logMsgBuilder.append("#         return handler();                                          #\n");
        logMsgBuilder.append("#     }                                                              #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("#     @Bean(\"methodSecurityExpressionHandler\")                     #\n");
        logMsgBuilder.append("#     MethodSecurityExpressionHandler handler() {                    #\n");
        logMsgBuilder.append("#         return handler;                                            #\n");
        logMsgBuilder.append("#     }                                                              #\n");
        logMsgBuilder.append("# }                                                                  #\n");
        logMsgBuilder.append("#                                                                    #\n");
        logMsgBuilder.append("######################################################################");

        if (LOG.isWarnEnabled()) {
            LOG.warn(logMsgBuilder.toString());
        }
    }
}