authenticationhandlermethodinterceptor.java

来自「CAS在Tomcat中实现单点登录项目,单点登录(Single Sign On 」· Java 代码 · 共 58 行

JAVA
58
字号
/* * Copyright 2007 The JA-SIG Collaborative. All rights reserved. See license * distributed with this file and available online at * http://www.ja-sig.org/products/cas/overview/license/ */package org.jasig.cas.event.advice;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;import org.jasig.cas.authentication.handler.AuthenticationException;import org.jasig.cas.authentication.principal.Credentials;import org.jasig.cas.event.AuthenticationEvent;import org.springframework.context.ApplicationEventPublisher;import org.springframework.context.ApplicationEventPublisherAware;/** * Advice to advise an AuthenticationHandler such that it checks the return * value returned by the authenticate method and constructs an * AuthenticationEvent that captures the result and publishes it for an * EventHandler to process. *  * @author Scott Battaglia * @version $Revision: 42053 $ $Date: 2007-06-10 09:17:55 -0400 (Sun, 10 Jun 2007) $ * @since 3.0 * @see org.jasig.cas.event.AuthenticationEvent */public final class AuthenticationHandlerMethodInterceptor implements    MethodInterceptor, ApplicationEventPublisherAware {    /** The publisher to publish events. */    private ApplicationEventPublisher applicationEventPublisher;    public void setApplicationEventPublisher(        final ApplicationEventPublisher applicationEventPublisher) {        this.applicationEventPublisher = applicationEventPublisher;    }    public Object invoke(final MethodInvocation methodInvocation)        throws Throwable {        try {            final Boolean returnValue = (Boolean) methodInvocation.proceed();            this.applicationEventPublisher                .publishEvent(new AuthenticationEvent(                    (Credentials) methodInvocation.getArguments()[0],                    returnValue.booleanValue(), methodInvocation.getMethod()                        .getDeclaringClass()));            return returnValue;        } catch (AuthenticationException e) {            this.applicationEventPublisher                .publishEvent(new AuthenticationEvent(                    (Credentials) methodInvocation.getArguments()[0], false,                    methodInvocation.getMethod().getDeclaringClass()));            throw e;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?