001/* 002 * Copyright (c) 2013 - 2016 TDP Ltd All Rights Reserved. 003 * TDP Ltd grants permission, free of charge, to any person obtaining copies 004 * of this software and its associated documentation files (the "Software"), 005 * to deal in the Software without restriction, including to use, copy, adapt, 006 * publish, distribute, display, perform, sublicense, and sell copies of the 007 * Software, subject to the following condition: You must include the above 008 * copyright notice and this permission notice in all full or partial copies 009 * of the Software. 010 * 011 * TDP LTD PROVIDES THE SOFTWARE "AS IS," WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, 012 * INCLUDING WITHOUT THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 013 * PARTICULAR PURPOSE, AND NON-INFRINGMENT. TDP LTD, THE AUTHORS OF THE SOFTWARE, 014 * AND THE OWNERS OF COPYRIGHT IN THE SOFTWARE ARE NOT LIABLE FOR ANY CLAIM, DAMAGES, 015 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING 016 * FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 017 * THE SOFTWARE. 018 */ 019package cz.tdp.kshield.integration; 020 021import javax.servlet.http.HttpServletRequest; 022 023 024/** 025 * Processes KeyShield SSO Server authentication 026 */ 027public interface ServletAuthenticationService extends AuthenticationService 028{ 029 /** 030 * Session attribute name of stored UserInfo 031 */ 032 String KSHIELD_PRINCIPAL_TOKEN = "__KSHIELD_PRINCIPAL__"; 033 034 /** 035 * Authenticates user identified by info stored in request (e.g. remoteAddr), usually called from servlet filter 036 * Retrieved userInfo is stored in session 037 * @see ServletAuthenticationService#KSHIELD_PRINCIPAL_TOKEN 038 * 039 * @param request current HTTP request 040 * @return true if the user was authenticated using KShield 041 */ 042 boolean authenticate(HttpServletRequest request); 043}