/*
* Copyright (c) 2016 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.shiro.web.filter;
import javax.annotation.Nullable;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.subject.Subject;
/**
* Implement this interface so that the AuthenticationFilter handles the single sign-on ticket.
*/
public interface AuthenticationExecutor {
/**
* Performs the shiro login.
* @param token
* @return
* @throws AuthenticationException
*/
@Nullable
Subject login(AuthenticationToken token) throws AuthenticationException;
/**
* Reuse a session and login.
* @param token
* @param sessionId
* @return
* @throws AuthenticationException
*/
@Nullable
Subject login(AuthenticationToken token, String sessionId) throws AuthenticationException;
}