I had well working testng test in version 1.2.0 sp1, i could execute from ant or inside eclipse with the testng pugling.
Since 1.2.1 GA i get the following error message when i execute my login tests: | "[RuleBasedIdentity] no security rule base available - please install a RuleBase with the name 'securityRules' if permission checks are required." | Full stack trace: | [Parser] Running: | C:\seat\workspace\aldebaran\src\test\com\swisscom\seat\services\security\test\testngServiceSecurityTest.xml | | 14:47:08,821 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam.jar | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/security, package: org.jboss.seam.security, prefix: org.jboss.seam.security | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/drools, package: org.jboss.seam.drools, prefix: org.jboss.seam.drools | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/mail, package: org.jboss.seam.mail, prefix: org.jboss.seam.mail | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/web, package: org.jboss.seam.web, prefix: org.jboss.seam.web | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/theme, package: org.jboss.seam.theme, prefix: org.jboss.seam.theme | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/core, package: org.jboss.seam.core, prefix: org.jboss.seam.core | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/jms, package: org.jboss.seam.jms, prefix: org.jboss.seam.jms | 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/framework, package: org.jboss.seam.framework, prefix: org.jboss.seam.core.framework | 14:47:08,837 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-debug.jar | 14:47:08,837 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-ui.jar | 14:47:08,853 INFO [Initialization] reading jar:file:/C:/seat/workspace/aldebaran/lib/jboss-seam.jar!/META-INF/components.xml | 14:47:08,962 INFO [Initialization] reading properties from: /seam.properties | 14:47:08,962 INFO [Initialization] reading properties from: /jndi.properties | 14:47:08,962 INFO [Initialization] initializing Seam | 14:47:08,993 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-debug.jar | 14:47:09,071 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-ui.jar | 14:47:09,274 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam.jar | 14:47:10,257 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.persistence.persistenceProvider | 14:47:10,273 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.security.identity | 14:47:10,304 INFO [Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init | 14:47:10,351 INFO [Initialization] Installing components... | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.applicationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ApplicationContext | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.businessProcessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.BusinessProcessContext | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationContext | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationEntries, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationEntries | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationList, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList | 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationStack, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.eventContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EventContext | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.events, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Events | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.exceptions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Exceptions | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.expressions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Expressions | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesContext | 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.facesMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesMessages | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.facesPage, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.FacesPage | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.httpError, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.HttpError | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.image, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Image | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.interpolator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Interpolator | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.IsUserInRole | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Locale | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.LocaleSelector | 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Manager | 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.messages, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.Messages | 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.methodContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.MethodContext | 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.pageContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PageContext | 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Pages | 14:47:10,429 INFO [Component] Component: org.jboss.seam.core.persistenceContexts, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.PersistenceContexts | 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.pojoCache, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PojoCache | 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Redirect | 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.renderer, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.FaceletsRenderer | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.resourceBundle, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.safeActions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SafeActions | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.sessionContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SessionContext | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.Switcher | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.UiComponent | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.userPrincipal, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.UserPrincipal | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.validation, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Validation | 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.validators, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Validators | 14:47:10,476 INFO [Component] Component: org.jboss.seam.framework.currentDate, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDate | 14:47:10,507 INFO [Component] Component: org.jboss.seam.framework.currentDatetime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDatetime | 14:47:10,507 INFO [Component] Component: org.jboss.seam.framework.currentTime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentTime | 14:47:10,507 INFO [Component] Component: org.jboss.seam.security.configuration, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.Configuration | 14:47:10,507 INFO [Component] Component: org.jboss.seam.security.identity, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.RuleBasedIdentity | 14:47:10,507 INFO [Component] Component: org.jboss.seam.servlet.exceptionFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.ExceptionFilter | 14:47:10,523 INFO [Component] Component: org.jboss.seam.servlet.multipartFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.MultipartFilter | 14:47:10,523 INFO [Component] Component: org.jboss.seam.servlet.redirectFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.RedirectFilter | 14:47:10,523 INFO [Component] Component: org.jboss.seam.theme.theme, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.Theme | 14:47:10,523 INFO [Component] Component: org.jboss.seam.theme.themeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.ThemeSelector | 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.entityConverter, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityConverter | 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.entityConverterStore, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityConverterStore | 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.graphicImage.dynamicImageResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.DynamicImageResource | 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.graphicImage.dynamicImageStore, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.DynamicImageStore | 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.resource.webResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.resource.WebResource | 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.exceptionFilter | 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.ui.graphicImage.dynamicImageResource | 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.multipartFilter | 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.ui.resource.webResource | 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.redirectFilter | 14:47:10,538 INFO [Initialization] done initializing Seam | 14:47:10,679 WARN [RuleBasedIdentity] no security rule base available - please install a RuleBase with the name 'securityRules' if permission checks are required. | 14:47:10,710 ERROR [SeamLoginModule] Error invoking login method | java.lang.NullPointerException | at org.jboss.seam.security.jaas.SeamLoginModule.login(SeamLoginModule.java:104) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) | at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) | at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706) | at java.security.AccessController.doPrivileged(Native Method) | at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703) | at javax.security.auth.login.LoginContext.login(LoginContext.java:575) | at org.jboss.seam.security.Identity.authenticate(Identity.java:247) | at org.jboss.seam.security.Identity.authenticate(Identity.java:240) | at org.jboss.seam.security.Identity.login(Identity.java:170) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at com.sun.el.parser.AstValue.invoke(AstValue.java:174) | at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:286) | at org.jboss.seam.util.UnifiedELMethodBinding.invoke(UnifiedELMethodBinding.java:36) | at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58) | at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75) | at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58) | at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75) | at org.jboss.seam.mock.SeamTest$Request.invokeMethod(SeamTest.java:401) | at com.swisscom.seat.services.security.test.LoginTest$2.invokeApplication(LoginTest.java:39) | at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:489) | at com.swisscom.seat.services.security.test.LoginTest.loginTest(LoginTest.java:50) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:645) | at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:479) | at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:715) | at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) | at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) | at org.testng.TestRunner.runWorkers(TestRunner.java:673) | at org.testng.TestRunner.privateRun(TestRunner.java:620) | at org.testng.TestRunner.run(TestRunner.java:480) | at org.testng.SuiteRunner.runTest(SuiteRunner.java:278) | at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:273) | at org.testng.SuiteRunner.privateRun(SuiteRunner.java:253) | at org.testng.SuiteRunner.run(SuiteRunner.java:168) | at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:987) | at org.testng.TestNG.runSuitesLocally(TestNG.java:951) | at org.testng.TestNG.run(TestNG.java:719) | at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73) | at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122) | FAILED: loginTest("tsggora1", "test") | javax.el.PropertyNotFoundException: ELResolver cannot handle a null base Object with identifier 'currentUser' | at com.sun.el.lang.ELSupport.throwUnhandled(ELSupport.java:52) | at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:75) | at com.sun.el.parser.AstValue.getValue(AstValue.java:114) | at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195) | at org.jboss.seam.util.UnifiedELValueBinding.getValue(UnifiedELValueBinding.java:34) | at org.jboss.seam.mock.SeamTest$Request.getValue(SeamTest.java:366) | at com.swisscom.seat.services.security.test.LoginTest$2.renderResponse(LoginTest.java:44) | at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:521) | at com.swisscom.seat.services.security.test.LoginTest.loginTest(LoginTest.java:50) | ... Removed 21 stack frames | | =============================================== | Security Tests | Tests run: 1, Failures: 1, Skips: 0 | =============================================== | | | =============================================== | Security Tests | Total tests run: 1, Failures: 1, Skips: 0 | =============================================== | The test class is looking like that: | package com.swisscom.seat.services.security.test; | | import java.util.List; | | import org.jboss.seam.Seam; | import org.jboss.seam.core.Manager; | import org.jboss.seam.mock.SeamTest; | import org.testng.annotations.Parameters; | import org.testng.annotations.Test; | | public class LoginTest extends SeamTest { | | @Parameters( { "userid", "password" }) | @Test( groups = {"functional"} ) | public void loginTest(final String userid, final String password) | throws Exception { | | new FacesRequest() { | | @Override | protected void invokeApplication() { | assert !isSessionInvalid(); | assert getValue("#{identity.loggedIn}").equals(false); | } | | }.run(); | | new FacesRequest() { | | @Override | protected void updateModelValues() throws Exception { | assert !isSessionInvalid(); | setValue("#{identity.username}", userid); | setValue("#{identity.password}", password); | } | | @Override | protected void invokeApplication() { | invokeMethod("#{identity.login}"); | } | | @Override | protected void renderResponse() { | assert getValue("#{currentUser.userid}").equals(userid); | assert !Manager.instance().isLongRunningConversation(); | assert ((List) getValue("#{currentUser.roles}")).size() > 0; | assert getValue("#{identity.loggedIn}").equals(true); | } | | }.run(); | | new FacesRequest() { | | @Override | protected void invokeApplication() { | assert !isSessionInvalid(); | assert getValue("#{identity.loggedIn}").equals(true); | } | | }.run(); | | new FacesRequest() { | | @Override | protected void invokeApplication() { | assert !Manager.instance().isLongRunningConversation(); | assert !isSessionInvalid(); | invokeMethod("#{identity.logout}"); | assert Seam.isSessionInvalid(); | } | | @Override | protected void renderResponse() { | assert getValue("#{identity.loggedIn}").equals(false); | assert Seam.isSessionInvalid(); | } | | }.run(); | | } | | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4034533#4034533 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4034533 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user