I want to reuse the custom password back-end written for BAS4.5, so
now I am trying to use Back-Compatible LoginModule and configure the
web application to authenticate agains it.
So this is the step that I have done:
1- deploy my customdb jar file (PasswordBackEnd.jar)
2- deploy my application that has security constraint
3- change server.xml to use BBSRealm with MyRealm
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<Realm className="org.apache.catalina.realm.BSSRealm" debug="1"
name="MyRealm" />
4- add in jaas.config MyRealm
MyRealm {
com.borland.security.provider.authn.BackCompatLoginModule required;
};
5- change vbroker.properties to use our customdb
# Point the ORB at the authentication config files
# (these paths are relative to
server.instance.root/adm/properties/partitions/partition.name)
vbroker.security.login=security/vault
vbroker.security.authentication.config=security/config.jaas
vbroker.security.enableAuthentication=true
vbroker.security.passwordBackEnd=CustomDB
vbroker.security.CustomDB.type=com.invidex.util.loginmanager.PasswordBackEnd
6- change in the classpath of ias.config and partition.config the
PasswordBackEnd.jar
7- Restart the appserver and I see my customdb initialized
[Mon Mar 11 11:30:03 EST 2002] Service standard starting.
[Mon Mar 11 11:30:05 EST 2002] stdout: Partition server starting [Mon
Mar 11 11:30:05 EST 2002] stdout: Using Smart Agent port 14641 [Mon
Mar 11 11:30:16 EST 2002] stdout: PasswordBackEnd.init invoked! [Mon
Mar 11 11:30:23 EST 2002] stdout: partitionagent: Service
partitionagent starting.
7- Then I try to login through http and It failed. I see in the
trace_log the following error: 00001027,3/11/02 11:40
AM,192.168.001.108,00001844,VBJ-Application,HttpProcessor[80][4],ALERT,Login
failed for user att[java.lang.IllegalArgumentException: Missing
PasswordBackEnd at com.borland.security.provider.authn.BackCompatLoginModule.initialize(BackCompatLoginModule.java:43)
at java.lang.reflect.Method.invoke(Native Method)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:582)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:125)
at javax.security.auth.login.LoginContext$3.run(LoginContext.java:531)
at java.security.AccessController.doPrivileged(Native Method) at
javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:528
at javax.security.auth.login.LoginContext.login(LoginContext.java:449)
at com.borland.security.provider.identity.IdentityServicesImpl.authenticate
at com.borland.security.core.ContextImpl.authenticate(ContextImpl.java:204)
at org.apache.catalina.realm.BSSRealm.authenticate(BSSRealm.java:107)
at org.apache.catalina.realm.BSSRealm.authenticate(BSSRealm.java:72)
at org.apache.catalina.authenticator.FormAuthenticator.authenticate(
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
at org.apache.catalina.core.StandardPipeline.invokeNext(
at org.apache.catalina.valves.CertificatesValve.invoke(
at org.apache.catalina.core.StandardPipeline.invokeNext(
at org.apache.catalina.core.StandardPipeline.invoke(
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java
at org.apache.catalina.core.StandardHostValve.invoke(
at org.apache.catalina.core.StandardPipeline.invokeNext(66)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(Stand64)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepor)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPip64)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.j
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(St66)
at org.apache.catalina.core.StandardPipeline.invoke(StandardP
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(1013)
at org.apache.catalina.connector.http.HttpProcessor.run()
at java.lang.Thread.run(Thread.java:484)
8- I also observed that when I shutdown my appserver I also got the
following error. I don't know if it is related or not. [Mon Mar 11
12:07:43 EST 2002] stderr: ejbcontainer: >>>> EJB LOG >>>>
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer:
org.omg.CORBA.OBJECT_NOT_EXIST: minor code: 1330446338 completed:
No
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
java.lang.Class.newInstance0(Native Method)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
java.lang.Class.newInstance(Class.java:237)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.vbroker.orb.SE.read(SE.java:28)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.vbroker.orb.DelegateImpl.handleReply(DelegateImpl.java:773)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.vbroker.orb.DelegateImpl.invoke(DelegateImpl.java:659)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:459)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.vbroker.orb.RequestImpl._invoke(RequestImpl.java:208)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.vbroker.orb.RequestImpl.invoke(RequestImpl.java:134)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
org.omg.CosNaming._NamingContextStub.resolve(_NamingContextStub.java:156)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java:368)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:417)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:395)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
javax.naming.InitialContext.lookup(InitialContext.java:350)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
javax.naming.InitialContext.lookup(InitialContext.java:350)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.j2ee.utils.JndiUtils.unregisterInJndi(JndiUtils.java:499)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.unregisterInJndi(Container.java:715)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.undeployEnterpriseBean(Container.java:844)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.undeployAllBeans(Container.java:805)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.undeployModule(Container.java:745)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.shutdownContainer(Container.java:201)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.ejb.Container.shutdown(Container.java:907)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.server.services.ejb.EjbService.shutdownInProcess(EjbService.java:341)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.inprise.server.services.ejb.EjbService.shutdown(EjbService.java:319)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.server.Service.shutdown(Service.java:429)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.server.ServiceManager.stopService(ServiceManager.java:1305)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.server.ServiceManager.stopService(ServiceManager.java:1280)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.server.ServiceManager.stopServices(ServiceManager.java:1256)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.sun.server.ServiceManager.stopServices(ServiceManager.java:1186)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.borland.enterprise.server.services.partition.PartitionServer.shutdown(PartitionServer.java:557)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.borland.enterprise.server.services.partition.PartitionServer.stop(PartitionServer.java:530)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.borland.enterprise.server.services.partition.PartitionServer.cleanup(PartitionServer.java:582)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
java.lang.reflect.Method.invoke(Native Method)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: at
com.borland.enterprise.server.services.partition.Partition.cleanup(Partition.java:173)
[Mon Mar 11 12:07:43 EST 2002] stderr: ejbcontainer: <<<< EJB LOG
<<<<
What is the problem with my configuration?
Thanks to anyone helping me!
Evans Castonguay