You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@juddi.apache.org by S K <sk...@gmail.com> on 2011/09/27 02:12:49 UTC

Configuring JUDDI 3.1.0 with LDAP v3

Hi,

I am attempting to configure the juddi 3.1.0 pluto portal to use the
LDAP v3 interface that is accessible with MS Active Directory.

I changed the juddiv3.properties in the
<juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
<juddi-portal>/webapps/uddi-portlets/WEB-INF/classes

# jUDDI Authentication module to use
#juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
juddi.authenticator.url=ldap://myldapserver.net:389


I am able to use JXplorer to browse that same LDAP server (using the
same port, LDAP v3, User+Password, a password, and a User DN
containing DC=something,DC=net

When I log into the juddi pluto portal, I can get authenticated at the front.
But when I click on any of the portlet links, for example, the jUDDI,
jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
this juddi.log entry (below)

If I use uddi/uddi as userid and password, I get this error.   If I
use an actual user entry, I cannot log into the main juddi pluto
portal -- reports that the user cannot be authenticated.


Can someone point to me some additional LDAP configuration required for JUDDI ?

I saw this jira related items but they are either too old, incomplete,
or related to the novell LDAP.

https://issues.apache.org/jira/browse/JUDDI-405
https://issues.apache.org/jira/browse/JUDDI-399
https://issues.apache.org/jira/browse/JUDDI-16
https://issues.apache.org/jira/browse/JUDDI-15
https://issues.apache.org/jira/browse/JUDDI-317


2011-09-26 15:12:20,758 INFO
[org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
authenticated
2011-09-26 15:12:20,789 ERROR
[org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
not obtain token. The user provided does not have a publishing
account:  uddi
javax.xml.ws.soap.SOAPFaultException: The user provided does not have
a publishing account:  uddi
	at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
	at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
	at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
	at $Proxy95.getAuthToken(Unknown Source)
	at org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
	at org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
	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:597)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:662)

Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by Kurt T Stam <ku...@gmail.com>.
Cool, maybe you can take the patch there and make sure that works for 
you. I think Tom will take a look soon and commit it to the trunk.

--Kurt

On 9/27/11 6:30 PM, S K wrote:
> Yes, same issue.
>
> On Tue, Sep 27, 2011 at 3:26 PM, Kurt T Stam<ku...@gmail.com>  wrote:
>> Sounds like you maybe running into:
>> https://issues.apache.org/jira/browse/JUDDI-529
>>
>>
>>
>> On 9/27/11 5:09 PM, S K wrote:
>>> I resolved this problem - partially.
>>>
>>>
>>> I switched the UserId to :
>>>
>>>                 try {
>>>                         String clazz =
>>> UDDIClientContainer.getUDDIClerkManager(null).
>>>
>>>   getClientConfig().getUDDINode("default").getProxyTransport();
>>>                         Class transportClass = ClassUtil.forName(clazz,
>>> Transport.class);
>>>                         if (transportClass!=null) {
>>>                                 Transport transport = (Transport)
>>> transportClass.getConstructor(String.class).newInstance("default");
>>>                                 UDDISecurityPortType security =
>>> transport.getUDDISecurityService();
>>>
>>>
>>>                                 GetAuthToken getAuthToken = new
>>> GetAuthToken();
>>>                                 getAuthToken.setUserID("CN=LDAP
>>> SEARCH,CN=Managed Service
>>> Accounts,DC=mydomain,DC=net");
>>>                                 getAuthToken.setCred("mysecret");
>>>                                 AuthToken authToken =
>>> security.getAuthToken(getAuthToken);
>>>                                 System.out.println("User token "
>>> +authToken.getAuthInfo());
>>>                                 assertTrue(authToken.getAuthInfo() !=
>>> null);
>>>
>>>                         }
>>>                 }
>>>                 catch (Exception e) {
>>>                         e.printStackTrace();
>>>                 }
>>>
>>>
>>>
>>> Then I noticed that the -- the user was being authenticated by tailing
>>> the juddi.log
>>>
>>> But I noticed that the isLdapUser is set to false at the beginning of
>>> authenticate but is never set to true at the end of the try block.
>>>
>>> Thus, it always throws an the UnknownUserException with
>>> errors.auth.NoPublisher
>>>
>>>
>>>
>>> On Tue, Sep 27, 2011 at 9:58 AM, S K<sk...@gmail.com>    wrote:
>>>> Hi Kurt,
>>>>
>>>> I am not familiar with Soap-UI -- but I am using another simplier
>>>> approach to testing juddi connection with my LDAP.
>>>>
>>>> I built a simple junit test function that -- if using the default
>>>> authenticator -- would authenticate successfully..
>>>>
>>>> But if I changed the juddiv3.properties to point to my LDAP server (as
>>>> described the initiail email in the thread) -- I get the same error.
>>>>
>>>> I have attached a tgz containing the simple junit (maven based) test
>>>> function to obtain the authToken.
>>>>
>>>> -------------------------------------------------------
>>>> log4j:WARN No appenders could be found for logger
>>>> (org.apache.juddi.v3.client.co
>>>> nfig.UDDIClientContainer).
>>>> log4j:WARN Please initialize the log4j system properly.
>>>>   T E S T S
>>>> -------------------------------------------------------
>>>> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for
>>>> more in
>>>> fo.
>>>> Running com.sk92129.SimpleUserAuthenticationTest
>>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have a
>>>> publishi
>>>> ng account:  root
>>>>         at
>>>> com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11
>>>> Fault.java:178)
>>>>         at
>>>> com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFa
>>>> ultBuilder.java:119)
>>>>         at
>>>> com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>>>> dHandler.java:108)
>>>>         at
>>>> com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>>>> dHandler.java:78)
>>>>         at
>>>> com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
>>>>         at $Proxy43.getAuthToken(Unknown Source)
>>>>         at
>>>> com.sk92129.SimpleUserAuthenticationTest.testSimpleAuthentication(Sim
>>>> pleUserAuthenticationTest.java:49)
>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>>> java:39)
>>>>         at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>>> sorImpl.java:25)
>>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>>         at
>>>> org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet
>>>> hodRunner.java:99)
>>>>         at
>>>> org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod
>>>> Runner.java:81)
>>>>         at
>>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>>>> dAfterRunner.java:34)
>>>>         at
>>>> org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne
>>>> r.java:75)
>>>>         at
>>>> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java
>>>> :45)
>>>>         at
>>>> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te
>>>> stClassMethodsRunner.java:71)
>>>>         at
>>>> org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod
>>>> sRunner.java:35)
>>>>         at
>>>> org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass
>>>> Runner.java:42)
>>>>         at
>>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>>>> dAfterRunner.java:34)
>>>>         at
>>>> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5
>>>> 2)
>>>>         at
>>>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
>>>> java:35)
>>>>         at
>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
>>>> Provider.java:115)
>>>>         at
>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
>>>> .java:97)
>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>>> java:39)
>>>>         at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>>> sorImpl.java:25)
>>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>>         at
>>>> org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
>>>> oke(ProviderFactory.java:103)
>>>>         at $Proxy0.invoke(Unknown Source)
>>>>         at
>>>> org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
>>>> ireStarter.java:150)
>>>>         at
>>>> org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
>>>> urefireStarter.java:91)
>>>>         at
>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
>>>> 69)
>>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.763 sec
>>>>
>>>> Results :
>>>>
>>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>>>>
>>>>
>>>> On Tue, Sep 27, 2011 at 5:37 AM, Kurt T Stam<ku...@gmail.com>    wrote:
>>>>> Hi SK,
>>>>>
>>>>> 1. I would first try to just get the juddi-server to work with the LDAP
>>>>> and
>>>>> send some
>>>>> requests in using SOAP-UI, to see if you can get a security token. See
>>>>> also
>>>>>
>>>>> http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication
>>>>>
>>>>> 2. That said it looks like you are using the 'uddi' user. This is a
>>>>> restricted publisher
>>>>> who owns all the uddi tmodels. You should not be using this user, but
>>>>> rather
>>>>> create your own. Or use the 'root' user until then.
>>>>>
>>>>> 3. Once you get that to work we can make sure the portal works too. The
>>>>> trick there is
>>>>> that the login credentials need to be passed on from the portal to the
>>>>> UDDI
>>>>> logon, so there
>>>>> may be some additional gotchas to overcome there. So start with (1)
>>>>> first.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> --Kurt
>>>>>
>>>>> On 9/26/11 8:12 PM, S K wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I am attempting to configure the juddi 3.1.0 pluto portal to use the
>>>>>> LDAP v3 interface that is accessible with MS Active Directory.
>>>>>>
>>>>>> I changed the juddiv3.properties in the
>>>>>> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
>>>>>> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>>>>>>
>>>>>> # jUDDI Authentication module to use
>>>>>> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
>>>>>> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
>>>>>> juddi.authenticator.url=ldap://myldapserver.net:389
>>>>>>
>>>>>>
>>>>>> I am able to use JXplorer to browse that same LDAP server (using the
>>>>>> same port, LDAP v3, User+Password, a password, and a User DN
>>>>>> containing DC=something,DC=net
>>>>>>
>>>>>> When I log into the juddi pluto portal, I can get authenticated at the
>>>>>> front.
>>>>>> But when I click on any of the portlet links, for example, the jUDDI,
>>>>>> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
>>>>>> this juddi.log entry (below)
>>>>>>
>>>>>> If I use uddi/uddi as userid and password, I get this error.   If I
>>>>>> use an actual user entry, I cannot log into the main juddi pluto
>>>>>> portal -- reports that the user cannot be authenticated.
>>>>>>
>>>>>>
>>>>>> Can someone point to me some additional LDAP configuration required for
>>>>>> JUDDI ?
>>>>>>
>>>>>> I saw this jira related items but they are either too old, incomplete,
>>>>>> or related to the novell LDAP.
>>>>>>
>>>>>> https://issues.apache.org/jira/browse/JUDDI-405
>>>>>> https://issues.apache.org/jira/browse/JUDDI-399
>>>>>> https://issues.apache.org/jira/browse/JUDDI-16
>>>>>> https://issues.apache.org/jira/browse/JUDDI-15
>>>>>> https://issues.apache.org/jira/browse/JUDDI-317
>>>>>>
>>>>>>
>>>>>> 2011-09-26 15:12:20,758 INFO
>>>>>> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
>>>>>> authenticated
>>>>>> 2011-09-26 15:12:20,789 ERROR
>>>>>> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
>>>>>> not obtain token. The user provided does not have a publishing
>>>>>> account:  uddi
>>>>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
>>>>>> a publishing account:  uddi
>>>>>>         at
>>>>>>
>>>>>> com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
>>>>>>         at
>>>>>>
>>>>>> com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
>>>>>>         at
>>>>>>
>>>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
>>>>>>         at
>>>>>>
>>>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
>>>>>>         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
>>>>>>         at $Proxy95.getAuthToken(Unknown Source)
>>>>>>         at
>>>>>>
>>>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
>>>>>>         at
>>>>>>
>>>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
>>>>>>         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:597)
>>>>>>         at
>>>>>>
>>>>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>>>>>>         at
>>>>>>
>>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>>>>>         at
>>>>>>
>>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>>         at
>>>>>>
>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>>>>         at
>>>>>>
>>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>>>>>>         at
>>>>>>
>>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>>>>         at
>>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>>         at java.lang.Thread.run(Thread.java:662)
>>


Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by S K <sk...@gmail.com>.
Yes, same issue.

On Tue, Sep 27, 2011 at 3:26 PM, Kurt T Stam <ku...@gmail.com> wrote:
> Sounds like you maybe running into:
> https://issues.apache.org/jira/browse/JUDDI-529
>
>
>
> On 9/27/11 5:09 PM, S K wrote:
>>
>> I resolved this problem - partially.
>>
>>
>> I switched the UserId to :
>>
>>                try {
>>                        String clazz =
>> UDDIClientContainer.getUDDIClerkManager(null).
>>
>>  getClientConfig().getUDDINode("default").getProxyTransport();
>>                        Class transportClass = ClassUtil.forName(clazz,
>> Transport.class);
>>                        if (transportClass!=null) {
>>                                Transport transport = (Transport)
>> transportClass.getConstructor(String.class).newInstance("default");
>>                                UDDISecurityPortType security =
>> transport.getUDDISecurityService();
>>
>>
>>                                GetAuthToken getAuthToken = new
>> GetAuthToken();
>>                                getAuthToken.setUserID("CN=LDAP
>> SEARCH,CN=Managed Service
>> Accounts,DC=mydomain,DC=net");
>>                                getAuthToken.setCred("mysecret");
>>                                AuthToken authToken =
>> security.getAuthToken(getAuthToken);
>>                                System.out.println("User token "
>> +authToken.getAuthInfo());
>>                                assertTrue(authToken.getAuthInfo() !=
>> null);
>>
>>                        }
>>                }
>>                catch (Exception e) {
>>                        e.printStackTrace();
>>                }
>>
>>
>>
>> Then I noticed that the -- the user was being authenticated by tailing
>> the juddi.log
>>
>> But I noticed that the isLdapUser is set to false at the beginning of
>> authenticate but is never set to true at the end of the try block.
>>
>> Thus, it always throws an the UnknownUserException with
>> errors.auth.NoPublisher
>>
>>
>>
>> On Tue, Sep 27, 2011 at 9:58 AM, S K<sk...@gmail.com>  wrote:
>>>
>>> Hi Kurt,
>>>
>>> I am not familiar with Soap-UI -- but I am using another simplier
>>> approach to testing juddi connection with my LDAP.
>>>
>>> I built a simple junit test function that -- if using the default
>>> authenticator -- would authenticate successfully..
>>>
>>> But if I changed the juddiv3.properties to point to my LDAP server (as
>>> described the initiail email in the thread) -- I get the same error.
>>>
>>> I have attached a tgz containing the simple junit (maven based) test
>>> function to obtain the authToken.
>>>
>>> -------------------------------------------------------
>>> log4j:WARN No appenders could be found for logger
>>> (org.apache.juddi.v3.client.co
>>> nfig.UDDIClientContainer).
>>> log4j:WARN Please initialize the log4j system properly.
>>>  T E S T S
>>> -------------------------------------------------------
>>> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for
>>> more in
>>> fo.
>>> Running com.sk92129.SimpleUserAuthenticationTest
>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have a
>>> publishi
>>> ng account:  root
>>>        at
>>> com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11
>>> Fault.java:178)
>>>        at
>>> com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFa
>>> ultBuilder.java:119)
>>>        at
>>> com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>>> dHandler.java:108)
>>>        at
>>> com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>>> dHandler.java:78)
>>>        at
>>> com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
>>>        at $Proxy43.getAuthToken(Unknown Source)
>>>        at
>>> com.sk92129.SimpleUserAuthenticationTest.testSimpleAuthentication(Sim
>>> pleUserAuthenticationTest.java:49)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet
>>> hodRunner.java:99)
>>>        at
>>> org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod
>>> Runner.java:81)
>>>        at
>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>>> dAfterRunner.java:34)
>>>        at
>>> org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne
>>> r.java:75)
>>>        at
>>> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java
>>> :45)
>>>        at
>>> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te
>>> stClassMethodsRunner.java:71)
>>>        at
>>> org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod
>>> sRunner.java:35)
>>>        at
>>> org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass
>>> Runner.java:42)
>>>        at
>>> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>>> dAfterRunner.java:34)
>>>        at
>>> org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5
>>> 2)
>>>        at
>>> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
>>> java:35)
>>>        at
>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
>>> Provider.java:115)
>>>        at
>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
>>> .java:97)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>        at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
>>> oke(ProviderFactory.java:103)
>>>        at $Proxy0.invoke(Unknown Source)
>>>        at
>>> org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
>>> ireStarter.java:150)
>>>        at
>>> org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
>>> urefireStarter.java:91)
>>>        at
>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
>>> 69)
>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.763 sec
>>>
>>> Results :
>>>
>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>>>
>>>
>>> On Tue, Sep 27, 2011 at 5:37 AM, Kurt T Stam<ku...@gmail.com>  wrote:
>>>>
>>>> Hi SK,
>>>>
>>>> 1. I would first try to just get the juddi-server to work with the LDAP
>>>> and
>>>> send some
>>>> requests in using SOAP-UI, to see if you can get a security token. See
>>>> also
>>>>
>>>> http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication
>>>>
>>>> 2. That said it looks like you are using the 'uddi' user. This is a
>>>> restricted publisher
>>>> who owns all the uddi tmodels. You should not be using this user, but
>>>> rather
>>>> create your own. Or use the 'root' user until then.
>>>>
>>>> 3. Once you get that to work we can make sure the portal works too. The
>>>> trick there is
>>>> that the login credentials need to be passed on from the portal to the
>>>> UDDI
>>>> logon, so there
>>>> may be some additional gotchas to overcome there. So start with (1)
>>>> first.
>>>>
>>>> Cheers,
>>>>
>>>> --Kurt
>>>>
>>>> On 9/26/11 8:12 PM, S K wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am attempting to configure the juddi 3.1.0 pluto portal to use the
>>>>> LDAP v3 interface that is accessible with MS Active Directory.
>>>>>
>>>>> I changed the juddiv3.properties in the
>>>>> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
>>>>> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>>>>>
>>>>> # jUDDI Authentication module to use
>>>>> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
>>>>> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
>>>>> juddi.authenticator.url=ldap://myldapserver.net:389
>>>>>
>>>>>
>>>>> I am able to use JXplorer to browse that same LDAP server (using the
>>>>> same port, LDAP v3, User+Password, a password, and a User DN
>>>>> containing DC=something,DC=net
>>>>>
>>>>> When I log into the juddi pluto portal, I can get authenticated at the
>>>>> front.
>>>>> But when I click on any of the portlet links, for example, the jUDDI,
>>>>> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
>>>>> this juddi.log entry (below)
>>>>>
>>>>> If I use uddi/uddi as userid and password, I get this error.   If I
>>>>> use an actual user entry, I cannot log into the main juddi pluto
>>>>> portal -- reports that the user cannot be authenticated.
>>>>>
>>>>>
>>>>> Can someone point to me some additional LDAP configuration required for
>>>>> JUDDI ?
>>>>>
>>>>> I saw this jira related items but they are either too old, incomplete,
>>>>> or related to the novell LDAP.
>>>>>
>>>>> https://issues.apache.org/jira/browse/JUDDI-405
>>>>> https://issues.apache.org/jira/browse/JUDDI-399
>>>>> https://issues.apache.org/jira/browse/JUDDI-16
>>>>> https://issues.apache.org/jira/browse/JUDDI-15
>>>>> https://issues.apache.org/jira/browse/JUDDI-317
>>>>>
>>>>>
>>>>> 2011-09-26 15:12:20,758 INFO
>>>>> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
>>>>> authenticated
>>>>> 2011-09-26 15:12:20,789 ERROR
>>>>> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
>>>>> not obtain token. The user provided does not have a publishing
>>>>> account:  uddi
>>>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
>>>>> a publishing account:  uddi
>>>>>        at
>>>>>
>>>>> com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
>>>>>        at
>>>>>
>>>>> com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
>>>>>        at
>>>>>
>>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
>>>>>        at
>>>>>
>>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
>>>>>        at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
>>>>>        at $Proxy95.getAuthToken(Unknown Source)
>>>>>        at
>>>>>
>>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
>>>>>        at
>>>>>
>>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
>>>>>        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:597)
>>>>>        at
>>>>>
>>>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>>>>>        at
>>>>>
>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>>>>        at
>>>>>
>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>>>        at
>>>>>
>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>>>>>        at
>>>>>
>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>>>        at
>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>        at java.lang.Thread.run(Thread.java:662)
>>>>
>
>

Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by Kurt T Stam <ku...@gmail.com>.
Sounds like you maybe running into: 
https://issues.apache.org/jira/browse/JUDDI-529



On 9/27/11 5:09 PM, S K wrote:
> I resolved this problem - partially.
>
>
> I switched the UserId to :
>
> 		try {
> 			String clazz = UDDIClientContainer.getUDDIClerkManager(null).
> 					getClientConfig().getUDDINode("default").getProxyTransport();
> 			Class transportClass = ClassUtil.forName(clazz, Transport.class);
> 			if (transportClass!=null) {
> 				Transport transport = (Transport)
> transportClass.getConstructor(String.class).newInstance("default");
> 				UDDISecurityPortType security = transport.getUDDISecurityService();
> 				
> 				
> 				GetAuthToken getAuthToken = new GetAuthToken();
> 				getAuthToken.setUserID("CN=LDAP SEARCH,CN=Managed Service
> Accounts,DC=mydomain,DC=net");
> 				getAuthToken.setCred("mysecret");
> 				AuthToken authToken = security.getAuthToken(getAuthToken);
> 				System.out.println("User token " +authToken.getAuthInfo());
> 				assertTrue(authToken.getAuthInfo() != null);
>
> 			}
> 		}
> 		catch (Exception e) {
> 			e.printStackTrace();
> 		}
>
>
>
> Then I noticed that the -- the user was being authenticated by tailing
> the juddi.log
>
> But I noticed that the isLdapUser is set to false at the beginning of
> authenticate but is never set to true at the end of the try block.
>
> Thus, it always throws an the UnknownUserException with errors.auth.NoPublisher
>
>
>
> On Tue, Sep 27, 2011 at 9:58 AM, S K<sk...@gmail.com>  wrote:
>> Hi Kurt,
>>
>> I am not familiar with Soap-UI -- but I am using another simplier
>> approach to testing juddi connection with my LDAP.
>>
>> I built a simple junit test function that -- if using the default
>> authenticator -- would authenticate successfully..
>>
>> But if I changed the juddiv3.properties to point to my LDAP server (as
>> described the initiail email in the thread) -- I get the same error.
>>
>> I have attached a tgz containing the simple junit (maven based) test
>> function to obtain the authToken.
>>
>> -------------------------------------------------------
>> log4j:WARN No appenders could be found for logger (org.apache.juddi.v3.client.co
>> nfig.UDDIClientContainer).
>> log4j:WARN Please initialize the log4j system properly.
>>   T E S T S
>> -------------------------------------------------------
>> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in
>> fo.
>> Running com.sk92129.SimpleUserAuthenticationTest
>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have a publishi
>> ng account:  root
>>         at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11
>> Fault.java:178)
>>         at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFa
>> ultBuilder.java:119)
>>         at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>> dHandler.java:108)
>>         at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
>> dHandler.java:78)
>>         at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
>>         at $Proxy43.getAuthToken(Unknown Source)
>>         at com.sk92129.SimpleUserAuthenticationTest.testSimpleAuthentication(Sim
>> pleUserAuthenticationTest.java:49)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>> java:39)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>> sorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet
>> hodRunner.java:99)
>>         at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod
>> Runner.java:81)
>>         at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>> dAfterRunner.java:34)
>>         at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne
>> r.java:75)
>>         at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java
>> :45)
>>         at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te
>> stClassMethodsRunner.java:71)
>>         at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod
>> sRunner.java:35)
>>         at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass
>> Runner.java:42)
>>         at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
>> dAfterRunner.java:34)
>>         at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5
>> 2)
>>         at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
>> java:35)
>>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
>> Provider.java:115)
>>         at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
>> .java:97)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>> java:39)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>> sorImpl.java:25)
>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>         at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
>> oke(ProviderFactory.java:103)
>>         at $Proxy0.invoke(Unknown Source)
>>         at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
>> ireStarter.java:150)
>>         at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
>> urefireStarter.java:91)
>>         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
>> 69)
>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.763 sec
>>
>> Results :
>>
>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>>
>>
>> On Tue, Sep 27, 2011 at 5:37 AM, Kurt T Stam<ku...@gmail.com>  wrote:
>>> Hi SK,
>>>
>>> 1. I would first try to just get the juddi-server to work with the LDAP and
>>> send some
>>> requests in using SOAP-UI, to see if you can get a security token. See also
>>> http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication
>>>
>>> 2. That said it looks like you are using the 'uddi' user. This is a
>>> restricted publisher
>>> who owns all the uddi tmodels. You should not be using this user, but rather
>>> create your own. Or use the 'root' user until then.
>>>
>>> 3. Once you get that to work we can make sure the portal works too. The
>>> trick there is
>>> that the login credentials need to be passed on from the portal to the UDDI
>>> logon, so there
>>> may be some additional gotchas to overcome there. So start with (1) first.
>>>
>>> Cheers,
>>>
>>> --Kurt
>>>
>>> On 9/26/11 8:12 PM, S K wrote:
>>>> Hi,
>>>>
>>>> I am attempting to configure the juddi 3.1.0 pluto portal to use the
>>>> LDAP v3 interface that is accessible with MS Active Directory.
>>>>
>>>> I changed the juddiv3.properties in the
>>>> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
>>>> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>>>>
>>>> # jUDDI Authentication module to use
>>>> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
>>>> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
>>>> juddi.authenticator.url=ldap://myldapserver.net:389
>>>>
>>>>
>>>> I am able to use JXplorer to browse that same LDAP server (using the
>>>> same port, LDAP v3, User+Password, a password, and a User DN
>>>> containing DC=something,DC=net
>>>>
>>>> When I log into the juddi pluto portal, I can get authenticated at the
>>>> front.
>>>> But when I click on any of the portlet links, for example, the jUDDI,
>>>> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
>>>> this juddi.log entry (below)
>>>>
>>>> If I use uddi/uddi as userid and password, I get this error.   If I
>>>> use an actual user entry, I cannot log into the main juddi pluto
>>>> portal -- reports that the user cannot be authenticated.
>>>>
>>>>
>>>> Can someone point to me some additional LDAP configuration required for
>>>> JUDDI ?
>>>>
>>>> I saw this jira related items but they are either too old, incomplete,
>>>> or related to the novell LDAP.
>>>>
>>>> https://issues.apache.org/jira/browse/JUDDI-405
>>>> https://issues.apache.org/jira/browse/JUDDI-399
>>>> https://issues.apache.org/jira/browse/JUDDI-16
>>>> https://issues.apache.org/jira/browse/JUDDI-15
>>>> https://issues.apache.org/jira/browse/JUDDI-317
>>>>
>>>>
>>>> 2011-09-26 15:12:20,758 INFO
>>>> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
>>>> authenticated
>>>> 2011-09-26 15:12:20,789 ERROR
>>>> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
>>>> not obtain token. The user provided does not have a publishing
>>>> account:  uddi
>>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
>>>> a publishing account:  uddi
>>>>         at
>>>> com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
>>>>         at
>>>> com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
>>>>         at
>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
>>>>         at
>>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
>>>>         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
>>>>         at $Proxy95.getAuthToken(Unknown Source)
>>>>         at
>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
>>>>         at
>>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
>>>>         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:597)
>>>>         at
>>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>>>>         at
>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>>>         at
>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>         at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>         at
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>         at
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>         at
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>         at
>>>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
>>>>         at
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>         at
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>>         at
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>>>>         at
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>>         at
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>         at java.lang.Thread.run(Thread.java:662)
>>>


Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by S K <sk...@gmail.com>.
I resolved this problem - partially.


I switched the UserId to :

		try {
			String clazz = UDDIClientContainer.getUDDIClerkManager(null).
					getClientConfig().getUDDINode("default").getProxyTransport();
			Class transportClass = ClassUtil.forName(clazz, Transport.class);
			if (transportClass!=null) {
				Transport transport = (Transport)
transportClass.getConstructor(String.class).newInstance("default");
				UDDISecurityPortType security = transport.getUDDISecurityService();
				
				
				GetAuthToken getAuthToken = new GetAuthToken();
				getAuthToken.setUserID("CN=LDAP SEARCH,CN=Managed Service
Accounts,DC=mydomain,DC=net");
				getAuthToken.setCred("mysecret");
				AuthToken authToken = security.getAuthToken(getAuthToken);
				System.out.println("User token " +authToken.getAuthInfo());
				assertTrue(authToken.getAuthInfo() != null);

			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}



Then I noticed that the -- the user was being authenticated by tailing
the juddi.log

But I noticed that the isLdapUser is set to false at the beginning of
authenticate but is never set to true at the end of the try block.

Thus, it always throws an the UnknownUserException with errors.auth.NoPublisher



On Tue, Sep 27, 2011 at 9:58 AM, S K <sk...@gmail.com> wrote:
> Hi Kurt,
>
> I am not familiar with Soap-UI -- but I am using another simplier
> approach to testing juddi connection with my LDAP.
>
> I built a simple junit test function that -- if using the default
> authenticator -- would authenticate successfully..
>
> But if I changed the juddiv3.properties to point to my LDAP server (as
> described the initiail email in the thread) -- I get the same error.
>
> I have attached a tgz containing the simple junit (maven based) test
> function to obtain the authToken.
>
> -------------------------------------------------------
> log4j:WARN No appenders could be found for logger (org.apache.juddi.v3.client.co
> nfig.UDDIClientContainer).
> log4j:WARN Please initialize the log4j system properly.
>  T E S T S
> -------------------------------------------------------
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in
> fo.
> Running com.sk92129.SimpleUserAuthenticationTest
> javax.xml.ws.soap.SOAPFaultException: The user provided does not have a publishi
> ng account:  root
>        at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11
> Fault.java:178)
>        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFa
> ultBuilder.java:119)
>        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
> dHandler.java:108)
>        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
> dHandler.java:78)
>        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
>        at $Proxy43.getAuthToken(Unknown Source)
>        at com.sk92129.SimpleUserAuthenticationTest.testSimpleAuthentication(Sim
> pleUserAuthenticationTest.java:49)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet
> hodRunner.java:99)
>        at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod
> Runner.java:81)
>        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
> dAfterRunner.java:34)
>        at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne
> r.java:75)
>        at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java
> :45)
>        at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te
> stClassMethodsRunner.java:71)
>        at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod
> sRunner.java:35)
>        at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass
> Runner.java:42)
>        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
> dAfterRunner.java:34)
>        at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5
> 2)
>        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
> java:35)
>        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
> Provider.java:115)
>        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
> .java:97)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
> oke(ProviderFactory.java:103)
>        at $Proxy0.invoke(Unknown Source)
>        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
> ireStarter.java:150)
>        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
> urefireStarter.java:91)
>        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
> 69)
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.763 sec
>
> Results :
>
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>
>
> On Tue, Sep 27, 2011 at 5:37 AM, Kurt T Stam <ku...@gmail.com> wrote:
>> Hi SK,
>>
>> 1. I would first try to just get the juddi-server to work with the LDAP and
>> send some
>> requests in using SOAP-UI, to see if you can get a security token. See also
>> http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication
>>
>> 2. That said it looks like you are using the 'uddi' user. This is a
>> restricted publisher
>> who owns all the uddi tmodels. You should not be using this user, but rather
>> create your own. Or use the 'root' user until then.
>>
>> 3. Once you get that to work we can make sure the portal works too. The
>> trick there is
>> that the login credentials need to be passed on from the portal to the UDDI
>> logon, so there
>> may be some additional gotchas to overcome there. So start with (1) first.
>>
>> Cheers,
>>
>> --Kurt
>>
>> On 9/26/11 8:12 PM, S K wrote:
>>>
>>> Hi,
>>>
>>> I am attempting to configure the juddi 3.1.0 pluto portal to use the
>>> LDAP v3 interface that is accessible with MS Active Directory.
>>>
>>> I changed the juddiv3.properties in the
>>> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
>>> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>>>
>>> # jUDDI Authentication module to use
>>> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
>>> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
>>> juddi.authenticator.url=ldap://myldapserver.net:389
>>>
>>>
>>> I am able to use JXplorer to browse that same LDAP server (using the
>>> same port, LDAP v3, User+Password, a password, and a User DN
>>> containing DC=something,DC=net
>>>
>>> When I log into the juddi pluto portal, I can get authenticated at the
>>> front.
>>> But when I click on any of the portlet links, for example, the jUDDI,
>>> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
>>> this juddi.log entry (below)
>>>
>>> If I use uddi/uddi as userid and password, I get this error.   If I
>>> use an actual user entry, I cannot log into the main juddi pluto
>>> portal -- reports that the user cannot be authenticated.
>>>
>>>
>>> Can someone point to me some additional LDAP configuration required for
>>> JUDDI ?
>>>
>>> I saw this jira related items but they are either too old, incomplete,
>>> or related to the novell LDAP.
>>>
>>> https://issues.apache.org/jira/browse/JUDDI-405
>>> https://issues.apache.org/jira/browse/JUDDI-399
>>> https://issues.apache.org/jira/browse/JUDDI-16
>>> https://issues.apache.org/jira/browse/JUDDI-15
>>> https://issues.apache.org/jira/browse/JUDDI-317
>>>
>>>
>>> 2011-09-26 15:12:20,758 INFO
>>> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
>>> authenticated
>>> 2011-09-26 15:12:20,789 ERROR
>>> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
>>> not obtain token. The user provided does not have a publishing
>>> account:  uddi
>>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
>>> a publishing account:  uddi
>>>        at
>>> com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
>>>        at
>>> com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
>>>        at
>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
>>>        at
>>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
>>>        at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
>>>        at $Proxy95.getAuthToken(Unknown Source)
>>>        at
>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
>>>        at
>>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
>>>        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:597)
>>>        at
>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>>>        at
>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>>        at
>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>        at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>        at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>        at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>        at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>        at
>>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
>>>        at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>        at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>        at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>>>        at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>        at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>        at java.lang.Thread.run(Thread.java:662)
>>
>>
>

Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by S K <sk...@gmail.com>.
Hi Kurt,

I am not familiar with Soap-UI -- but I am using another simplier
approach to testing juddi connection with my LDAP.

I built a simple junit test function that -- if using the default
authenticator -- would authenticate successfully..

But if I changed the juddiv3.properties to point to my LDAP server (as
described the initiail email in the thread) -- I get the same error.

I have attached a tgz containing the simple junit (maven based) test
function to obtain the authToken.

-------------------------------------------------------
log4j:WARN No appenders could be found for logger (org.apache.juddi.v3.client.co
nfig.UDDIClientContainer).
log4j:WARN Please initialize the log4j system properly.
 T E S T S
-------------------------------------------------------
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more in
fo.
Running com.sk92129.SimpleUserAuthenticationTest
javax.xml.ws.soap.SOAPFaultException: The user provided does not have a publishi
ng account:  root
        at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11
Fault.java:178)
        at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFa
ultBuilder.java:119)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
dHandler.java:108)
        at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMetho
dHandler.java:78)
        at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
        at $Proxy43.getAuthToken(Unknown Source)
        at com.sk92129.SimpleUserAuthenticationTest.testSimpleAuthentication(Sim
pleUserAuthenticationTest.java:49)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMet
hodRunner.java:99)
        at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethod
Runner.java:81)
        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
dAfterRunner.java:34)
        at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunne
r.java:75)
        at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java
:45)
        at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(Te
stClassMethodsRunner.java:71)
        at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethod
sRunner.java:35)
        at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClass
Runner.java:42)
        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAn
dAfterRunner.java:34)
        at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:5
2)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
java:35)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
Provider.java:115)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
oke(ProviderFactory.java:103)
        at $Proxy0.invoke(Unknown Source)
        at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
ireStarter.java:150)
        at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
urefireStarter.java:91)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
69)
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.763 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0


On Tue, Sep 27, 2011 at 5:37 AM, Kurt T Stam <ku...@gmail.com> wrote:
> Hi SK,
>
> 1. I would first try to just get the juddi-server to work with the LDAP and
> send some
> requests in using SOAP-UI, to see if you can get a security token. See also
> http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication
>
> 2. That said it looks like you are using the 'uddi' user. This is a
> restricted publisher
> who owns all the uddi tmodels. You should not be using this user, but rather
> create your own. Or use the 'root' user until then.
>
> 3. Once you get that to work we can make sure the portal works too. The
> trick there is
> that the login credentials need to be passed on from the portal to the UDDI
> logon, so there
> may be some additional gotchas to overcome there. So start with (1) first.
>
> Cheers,
>
> --Kurt
>
> On 9/26/11 8:12 PM, S K wrote:
>>
>> Hi,
>>
>> I am attempting to configure the juddi 3.1.0 pluto portal to use the
>> LDAP v3 interface that is accessible with MS Active Directory.
>>
>> I changed the juddiv3.properties in the
>> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
>> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>>
>> # jUDDI Authentication module to use
>> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
>> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
>> juddi.authenticator.url=ldap://myldapserver.net:389
>>
>>
>> I am able to use JXplorer to browse that same LDAP server (using the
>> same port, LDAP v3, User+Password, a password, and a User DN
>> containing DC=something,DC=net
>>
>> When I log into the juddi pluto portal, I can get authenticated at the
>> front.
>> But when I click on any of the portlet links, for example, the jUDDI,
>> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
>> this juddi.log entry (below)
>>
>> If I use uddi/uddi as userid and password, I get this error.   If I
>> use an actual user entry, I cannot log into the main juddi pluto
>> portal -- reports that the user cannot be authenticated.
>>
>>
>> Can someone point to me some additional LDAP configuration required for
>> JUDDI ?
>>
>> I saw this jira related items but they are either too old, incomplete,
>> or related to the novell LDAP.
>>
>> https://issues.apache.org/jira/browse/JUDDI-405
>> https://issues.apache.org/jira/browse/JUDDI-399
>> https://issues.apache.org/jira/browse/JUDDI-16
>> https://issues.apache.org/jira/browse/JUDDI-15
>> https://issues.apache.org/jira/browse/JUDDI-317
>>
>>
>> 2011-09-26 15:12:20,758 INFO
>> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
>> authenticated
>> 2011-09-26 15:12:20,789 ERROR
>> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
>> not obtain token. The user provided does not have a publishing
>> account:  uddi
>> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
>> a publishing account:  uddi
>>        at
>> com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
>>        at
>> com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
>>        at
>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
>>        at
>> com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
>>        at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
>>        at $Proxy95.getAuthToken(Unknown Source)
>>        at
>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
>>        at
>> org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
>>        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:597)
>>        at
>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>>        at
>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>        at
>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>        at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>        at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>        at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>        at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>        at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>        at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>        at
>> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
>>        at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>        at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>        at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>>        at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>        at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>        at java.lang.Thread.run(Thread.java:662)
>
>

Re: Configuring JUDDI 3.1.0 with LDAP v3

Posted by Kurt T Stam <ku...@gmail.com>.
Hi SK,

1. I would first try to just get the juddi-server to work with the LDAP 
and send some
requests in using SOAP-UI, to see if you can get a security token. See also
http://juddi.apache.org/docs/3.x/userguide/html/chap-Authentication.html#sect-LDAP_Authentication

2. That said it looks like you are using the 'uddi' user. This is a 
restricted publisher
who owns all the uddi tmodels. You should not be using this user, but rather
create your own. Or use the 'root' user until then.

3. Once you get that to work we can make sure the portal works too. The 
trick there is
that the login credentials need to be passed on from the portal to the 
UDDI logon, so there
may be some additional gotchas to overcome there. So start with (1) first.

Cheers,

--Kurt

On 9/26/11 8:12 PM, S K wrote:
> Hi,
>
> I am attempting to configure the juddi 3.1.0 pluto portal to use the
> LDAP v3 interface that is accessible with MS Active Directory.
>
> I changed the juddiv3.properties in the
> <juddi-portal>/webapps/juddiv3/WEB-INF/classes and in
> <juddi-portal>/webapps/uddi-portlets/WEB-INF/classes
>
> # jUDDI Authentication module to use
> #juddi.authenticator = org.apache.juddi.v3.auth.JUDDIAuthenticator
> juddi.authenticator=org.apache.juddi.v3.auth.LdapSimpleAuthenticator
> juddi.authenticator.url=ldap://myldapserver.net:389
>
>
> I am able to use JXplorer to browse that same LDAP server (using the
> same port, LDAP v3, User+Password, a password, and a User DN
> containing DC=something,DC=net
>
> When I log into the juddi pluto portal, I can get authenticated at the front.
> But when I click on any of the portlet links, for example, the jUDDI,
> jUDDI Subscriptions, jUDDI Admin, the browser reports an error related
> this juddi.log entry (below)
>
> If I use uddi/uddi as userid and password, I get this error.   If I
> use an actual user entry, I cannot log into the main juddi pluto
> portal -- reports that the user cannot be authenticated.
>
>
> Can someone point to me some additional LDAP configuration required for JUDDI ?
>
> I saw this jira related items but they are either too old, incomplete,
> or related to the novell LDAP.
>
> https://issues.apache.org/jira/browse/JUDDI-405
> https://issues.apache.org/jira/browse/JUDDI-399
> https://issues.apache.org/jira/browse/JUDDI-16
> https://issues.apache.org/jira/browse/JUDDI-15
> https://issues.apache.org/jira/browse/JUDDI-317
>
>
> 2011-09-26 15:12:20,758 INFO
> [org.apache.juddi.v3.auth.LdapSimpleAuthenticator] - uddi is
> authenticated
> 2011-09-26 15:12:20,789 ERROR
> [org.apache.juddi.portlets.server.service.SecurityServiceImpl] - Could
> not obtain token. The user provided does not have a publishing
> account:  uddi
> javax.xml.ws.soap.SOAPFaultException: The user provided does not have
> a publishing account:  uddi
> 	at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
> 	at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130)
> 	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
> 	at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
> 	at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
> 	at $Proxy95.getAuthToken(Unknown Source)
> 	at org.apache.juddi.portlets.server.service.SecurityServiceImpl.login(SecurityServiceImpl.java:130)
> 	at org.apache.juddi.portlets.server.service.SecurityServiceImpl.get(SecurityServiceImpl.java:81)
> 	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:597)
> 	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
> 	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
> 	at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:421)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> 	at java.lang.Thread.run(Thread.java:662)