/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestEngineExpressionRoleUser.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.engine; import com.meterware.httpunit.GetMethodWebRequest; import com.meterware.httpunit.WebConversation; import com.meterware.httpunit.WebRequest; import com.meterware.httpunit.WebResponse; import com.uwyn.rife.TestCaseServerside; import com.uwyn.rife.authentication.credentialsmanagers.DatabaseUsers; import com.uwyn.rife.authentication.credentialsmanagers.DatabaseUsersFactory; import com.uwyn.rife.authentication.credentialsmanagers.RoleUserAttributes; import com.uwyn.rife.authentication.exceptions.CredentialsManagerException; import com.uwyn.rife.authentication.exceptions.SessionManagerException; import com.uwyn.rife.authentication.sessionmanagers.DatabaseSessions; import com.uwyn.rife.authentication.sessionmanagers.DatabaseSessionsFactory; import com.uwyn.rife.authentication.sessionmanagers.SessionManagerFactoryFactory; import com.uwyn.rife.config.Config; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.database.Datasources; import com.uwyn.rife.ioc.HierarchicalProperties; import com.uwyn.rife.tools.ExceptionUtils; import com.uwyn.rife.tools.StringEncryptor; import com.uwyn.rife.tools.StringUtils; public class TestEngineExpressionRoleUser extends TestCaseServerside { private Datasource mDatasource = null; private HierarchicalProperties mProperties = null; public TestEngineExpressionRoleUser(int siteType, String name) { super(siteType, name); } public void setUp() throws Exception { super.setUp(); Config.getRepInstance().setParameter("unittestsdatasource", "unittestsderby"); mDatasource = Datasources.getRepInstance().getDatasource("unittestsderby"); mProperties = new HierarchicalProperties(); mProperties.put("datasource", mDatasource); mProperties.put(SessionManagerFactoryFactory.PROPERTYNAME_FACTORY_CLASS, DatabaseSessionsFactory.class.getName()); DatabaseUsers users = DatabaseUsersFactory.getInstance(mDatasource); try { users.install(); users.addRole("admin"); users.addRole("maint"); users.addUser("guest", new RoleUserAttributes(43, "guestpass")); users.addUser("gbevin", new RoleUserAttributes(1, "yeolpass", new String[] {"admin", "maint"})); users.addUser("johndoe", new RoleUserAttributes(174, "thepassofbass", new String[] {"maint"})); users.setPasswordEncryptor(StringEncryptor.SHA); users.addUser("guestencrypted", new RoleUserAttributes(44, "guestpass")); users.addUser("gbevinencrypted", new RoleUserAttributes(3, "yeolpass", new String[] {"admin", "maint"})); users.setPasswordEncryptor(null); } catch (CredentialsManagerException e) { try { users.remove(); } catch (CredentialsManagerException e2) { assertTrue(ExceptionUtils.getExceptionStackTrace(e2), false); } assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } DatabaseSessions sessions = (DatabaseSessions) SessionManagerFactoryFactory.getManager(mProperties); try { sessions.install(); } catch (SessionManagerException e) { try { sessions.remove(); } catch (SessionManagerException e2) { assertTrue(ExceptionUtils.getExceptionStackTrace(e2), false); } assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } } public void tearDown() throws Exception { DatabaseUsers users = DatabaseUsersFactory.getInstance(mDatasource); try { users.remove(); } catch (CredentialsManagerException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } DatabaseSessions sessions = (DatabaseSessions)SessionManagerFactoryFactory.getManager(mProperties); try { sessions.remove(); } catch (SessionManagerException e) { assertTrue(ExceptionUtils.getExceptionStackTrace(e), false); } Config.getRepInstance().removeParameter("unittestsdatasource"); super.tearDown(); } public void testMemoryRoleAdminOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleMaintOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testIdentifiedOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; String authid = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/identified?authid=blargh"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testExplicitEvaluationOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=login"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password1"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password2"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=anotheradmin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=admin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testDatabaseRoleAdminOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testDatabaseRoleMaintOgnl() throws Exception { setupSite("site/roleuser_ognl.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleAdminMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleMaintMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testIdentifiedMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; String authid = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/identified?authid=blargh"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testExplicitEvaluationMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=login"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password1"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password2"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=anotheradmin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=admin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testDatabaseRoleAdminMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testDatabaseRoleMaintMvel() throws Exception { setupSite("site/roleuser_mvel.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleAdminGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleMaintGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testIdentifiedGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; String authid = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/identified?authid=blargh"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testExplicitEvaluationGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=login"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password1"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password2"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=anotheradmin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=admin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testDatabaseRoleAdminGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testDatabaseRoleMaintGroovy() throws Exception { setupSite("site/roleuser_groovy.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleAdminJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testMemoryRoleMaintJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testIdentifiedJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; String authid = null; request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/memory/role_admin?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); lines = StringUtils.splitToArray(response.getText(), "\n"); authid = lines[8]; request = new GetMethodWebRequest("http://localhost:8181/identified?authid="+authid); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/identified?authid=blargh"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testExplicitEvaluationJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=login"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password1"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=password2"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=anotheradmin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/explicit_evaluation?submission=credentials&login=gbevin&password=yeolpass&evaluate=role1&roleadmin=admin"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("not matching role2", lines[4]); assertEquals("not matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); } public void testDatabaseRoleAdminJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } public void testDatabaseRoleMaintJanino() throws Exception { setupSite("site/roleuser_janino.xml"); WebConversation conversation = new WebConversation(); WebRequest request = null; WebResponse response = null; String[] lines = null; request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=gbevin&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("matching login", lines[0]); assertEquals("matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/encrypted?submission=credentials&login=gbevinencrypted&password=yeolpass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("matching password2", lines[2]); assertEquals("matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_maint?submission=credentials&login=johndoe&password=thepassofbass"); response = conversation.getResponse(request); assertEquals(0, response.getForms().length); lines = StringUtils.splitToArray(response.getText(), "\n"); assertEquals("not matching login", lines[0]); assertEquals("not matching password1", lines[1]); assertEquals("not matching password2", lines[2]); assertEquals("not matching role1", lines[3]); assertEquals("matching role2", lines[4]); assertEquals("matching role3", lines[5]); assertEquals("not matching userid1", lines[6]); assertEquals("not matching userid2", lines[7]); request = new GetMethodWebRequest("http://localhost:8181/database/role_admin?submission=credentials&login=guest&password=guestpass"); response = conversation.getResponse(request); assertEquals(1, response.getForms().length); } }