centralauthenticationservicemethodinterceptor.java

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

JAVA
91
字号
/* * 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.event.TicketEvent;import org.jasig.cas.ticket.Ticket;import org.jasig.cas.ticket.registry.TicketRegistry;import org.jasig.cas.util.annotation.NotNull;import org.springframework.context.ApplicationEventPublisher;import org.springframework.context.ApplicationEventPublisherAware;/** * @author Scott Battaglia * @version $Revision: 42053 $ $Date: 2007-06-10 09:17:55 -0400 (Sun, 10 Jun 2007) $ * @since 3.0.4 */public class CentralAuthenticationServiceMethodInterceptor implements    MethodInterceptor, ApplicationEventPublisherAware {    /** The TicketRegistry which holds ticket information. */    @NotNull    private TicketRegistry ticketRegistry;    /** The publisher to publish events. */    private ApplicationEventPublisher applicationEventPublisher;    public Object invoke(MethodInvocation method) throws Throwable {        Ticket ticket = null;        TicketEvent ticketEvent = null;        if (method.getMethod().getName().equals("validateServiceTicket")) {            ticket = this.ticketRegistry.getTicket((String) method                .getArguments()[0]);        }        final Object returnValue = method.proceed();        if (!method.getMethod().getName().equals("validateServiceTicket")            && !method.getMethod().getName().equals(                "destroyTicketGrantingTicket")) {            ticket = this.ticketRegistry.getTicket((String) returnValue);        }        final String methodName = method.getMethod().getName();        if (methodName.equals("createTicketGrantingTicket")) {            ticketEvent = new TicketEvent(ticket,                TicketEvent.CREATE_TICKET_GRANTING_TICKET);        } else if (methodName.equals("delegateTicketGrantingTicket")) {            ticketEvent = new TicketEvent(ticket,                TicketEvent.CREATE_TICKET_GRANTING_TICKET);        } else if (methodName.equals("grantServiceTicket")) {            ticketEvent = new TicketEvent(ticket,                TicketEvent.CREATE_SERVICE_TICKET);        } else if (methodName.equals("destroyTicketGrantingTicket")) {            ticketEvent = new TicketEvent(                TicketEvent.DESTROY_TICKET_GRANTING_TICKET, (String) method                    .getArguments()[0]);        } else if (methodName.equals("validateServiceTicket")) {            ticketEvent = new TicketEvent(ticket,                TicketEvent.VALIDATE_SERVICE_TICKET);        }        if (ticketEvent != null) {            this.applicationEventPublisher.publishEvent(ticketEvent);        }        return returnValue;    }    public void setApplicationEventPublisher(        final ApplicationEventPublisher applicationEventPublisher) {        this.applicationEventPublisher = applicationEventPublisher;    }    /**     * The TicketRegistry to use to look up tickets.     *      * @param ticketRegistry the TicketRegistry     */    public void setTicketRegistry(final TicketRegistry ticketRegistry) {        this.ticketRegistry = ticketRegistry;    }}

⌨️ 快捷键说明

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