/* * Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package org.entando.entando.aps.system.services.controller.control; import org.springframework.mock.web.MockHttpServletRequest; import com.agiletec.aps.BaseTestCase; import com.agiletec.aps.system.RequestContext; import com.agiletec.aps.system.SystemConstants; import com.agiletec.aps.system.exception.ApsSystemException; import com.agiletec.aps.system.services.controller.ControllerManager; import com.agiletec.aps.system.services.controller.control.ControlServiceInterface; import com.agiletec.aps.system.services.user.UserDetails; /** * @author M.Diana */ public class TestAuthenticator extends BaseTestCase { @Override protected void setUp() throws Exception { super.setUp(); this.init(); } public void testService_1() throws ApsSystemException { RequestContext reqCtx = this.getRequestContext(); int status = _authenticator.service(reqCtx, ControllerManager.CONTINUE); assertEquals(status, ControllerManager.CONTINUE); UserDetails currentUser = (UserDetails) reqCtx.getRequest().getSession().getAttribute(SystemConstants.SESSIONPARAM_CURRENT_USER); assertEquals(SystemConstants.GUEST_USER_NAME, currentUser.getUsername()); } public void testService_2() throws ApsSystemException { RequestContext reqCtx = this.getRequestContext(); MockHttpServletRequest request = (MockHttpServletRequest) reqCtx.getRequest(); request.setParameter("username", "admin"); request.setParameter("password", "admin"); int status = _authenticator.service(reqCtx, ControllerManager.CONTINUE); assertEquals(status, ControllerManager.CONTINUE); UserDetails currentUser = (UserDetails) request.getSession().getAttribute(SystemConstants.SESSIONPARAM_CURRENT_USER); assertEquals("admin", currentUser.getUsername()); } public void testServiceFailure() throws ApsSystemException { RequestContext reqCtx = this.getRequestContext(); MockHttpServletRequest request = (MockHttpServletRequest) reqCtx.getRequest(); request.setParameter("user", "notauthorized"); request.setParameter("password", "notauthorized"); int status = _authenticator.service(reqCtx, ControllerManager.CONTINUE); assertEquals(status, ControllerManager.CONTINUE); UserDetails currentUser = (UserDetails) request.getSession().getAttribute(SystemConstants.SESSIONPARAM_CURRENT_USER); assertEquals(SystemConstants.GUEST_USER_NAME, currentUser.getUsername()); } private void init() throws Exception { try { this._authenticator = (ControlServiceInterface) this.getApplicationContext().getBean("AuthenticatorControlService"); } catch (Throwable e) { throw new Exception(e); } } private ControlServiceInterface _authenticator; }