Hello,

Okay, well I'm a bit confused here. Situation is that we have a server
somewhere which has tomcat and juddiv3. I'm writing a specific remote
juddiv3 manager (smth similar to uddi browser). So the data which holds
users with passwords lays down in a server (for a now lets say I set up
juddiv3 for '*XMLDocAuthenticator*' and that mentioned data is '*
juddi-users.xml*'). Since from my app I can reach only juddiv3 services
seems like I cannot manage that 'juddi-users.xml' which is in a server. So
the only way to manage users (create, edit, delete) turns to be from inside
the server. Or do I misunderstand the purpose of Authenticator? Is it
responsible for only and only authentication and not managing the users it
is working with?

If not, I had a thought of writing a class which could extend '*
CryptedXMLDocAuthenticator*' and add some methods for managing users. Since
I feel I cannot do that the following ways come to my head:
1. Creating another tool which will start from inside the server and manage
that 'juddi-users.xml'
or
2. Creating a small database for holding users and their passwords (also
making my own Authenticator class and applying it for juddi), and make a
remote connection to it from my app.
or
3. Any suggestions?

And as I read that I can write my own class which could implement
Authenticator. How can I apply it to the juddi? Should I compile that class
to .jar and add it to the '~webapps\juddiv3\WEB-INF\lib' and edit
'juddiv3.properties' to smth like 'juddi.authenticator =
my.random.package.MyAuthenticator'? Or do I even have to write my own
Authenticator class because I need managing users, maybe I miss something in
juddi and there is a written class already (or smth else) to solve this
problem (not talking about jboss)?

--Martin


2011/3/31 Kurt T Stam <[email protected]>

>  Hi Martin,
>
> 1. Yes for this bug I only changed the 'identify' method. Don't worry about
> other changes if things work for you.
>
> 2. Right jUDDI does not store passwords, but does need a Publisher record.
> You will need to keep that in sync with the juddi-users.xml file (or JAAS,
> see
> http://juddi.apache.org/docs/3.0/userguide/html/chap-Authentication.html#sect-JBoss_Authentication).
> These Authenticator
> classes are 'plugin' so you can create your own and just reference that in
> the jUDDI config, as long as you implement the Authenticator interface
> it should work. So you can write one to hook up to some existing product
> with usernames/passwords (database). And/or you can write something
> so that more users can run of one shared jUDDI Publisher. Our setup should
> make it pretty straight forward to write your own Authenticator class and do
> the integration. If you some up with something that you think is useful for
> other users then we'd love hearing about it and we'll add it to jUDDI :).
>
> --Kurt
>
>
>
> On 3/31/11 6:47 AM, Martynas A. (chainer) wrote:
>
> Hi Kurt,
>
> Okay I did check out. But I still have some questions. Here is what I found
> in '*org.apache.juddi.v3.auth.XMLDocAuthenticator.java*' (in '*jUDDI Core*')
> when I made a check out: ( http://codepaste.net/gttc3a )
> Since I wasn't able to build with '*mvn clean install*' I looked deeper
> into the code.
> I see in the commit (
> http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java?p2=%2Fjuddi%2Ftrunk%2Fjuddi-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fjuddi%2Fv3%2Fauth%2FXMLDocAuthenticator.java&p1=%2Fjuddi%2Ftrunk%2Fjuddi-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fjuddi%2Fv3%2Fauth%2FXMLDocAuthenticator.java&r1=1086999&r2=1086998&view=diff&pathrev=1086999)
>  that the only changes were made to '
> *public UddiEntityPublisher identify(String authInfo, String
> authorizedName)*' method. But as if you say I could simply replace whole
> class with (
> http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java?revision=1086999&view=markup&pathrev=1086999)
>  I can see more changes in your posted class. I've checkout via NetBeans
> and after replacing class code it throw me an error in code and I noticed
> that not only '*identify*' method is changed:
>
> public synchronized void readUserFile() throws JAXBException, IOException,
>> ConfigurationException
>>     {
>>         ...
>>         InputStream stream = ClassUtil.getResource(usersFileName,
>> this.getClass()).openStream();
>>         ...
>>     }
>>
>
>  Error    cannot find symbol   symbol:   method
>> getResource(java.lang.String,java.lang.Class<capture#1 of ? extends
>> org.apache.juddi.v3.auth.XMLDocAuthenticator>)   location: class
>> org.apache.juddi.ClassUtil    XMLDocAuthenticator.java
>> ~/juddi-3.0.4/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java:93
>>
>
>  However I was able to replace '*identify*' method with the new one and
> successfully build '*jUDDI Core*' project. But maybe I have a lack of
> knowledge on what actually happens. As far as I understand '*jUDDI Core*'
> builds new '*juddi-core-3.0.4.jar*' in '*~\juddi-3.0.4\juddi-core\target*'.
> So I replaced it with the one in my tomcat:
> '~\webapps\uddi-portlets\WEB-INF\lib'. And also '*XMLDocAuthenticator*.class'
> in '*
> ~\webapps\juddiv3\WEB-INF\lib\juddi-core-openjpa-3.0.4.jar\org\apache\juddi\v3\auth\
> *'. Therefore Class cast exception disappeared and seems like problems
> went out (I can successfully save/delete publishers now). But what about
> that discrepancy in '*XMLDocAuthenticator.java'*?
>
> Nomater if I'm talking nonsense, I have a question about 'juddi-users.xml'
> (or 'juddi-users-encrypted.xml'). How should I work with this file from my
> code if I wanna create new/edit/delete users with passwords. Seems like this
> has nothing to do with juddi, so how should I take care of managing users
> (especially if I'm using CryptedXMLDocAuthenticator). Should there be any
> synchronization between this file and publishers in the database?
>
> Thanks,
> Martin
>
> 2011/3/30 Kurt T Stam <[email protected]>
>
>>  Hi Martin,
>>
>> All fixed. If you are using juddi-3.0.4, you should check out the source
>> for juddi-3.0.4, and apply the patch:
>>
>>
>> http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java?p2=%2Fjuddi%2Ftrunk%2Fjuddi-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fjuddi%2Fv3%2Fauth%2FXMLDocAuthenticator.java&p1=%2Fjuddi%2Ftrunk%2Fjuddi-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fjuddi%2Fv3%2Fauth%2FXMLDocAuthenticator.java&r1=1086999&r2=1086998&view=diff&pathrev=1086999
>>
>> or simply replace  it with
>>
>>
>> http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/XMLDocAuthenticator.java?revision=1086999&view=markup&pathrev=1086999
>>
>> then from the juddi-core directory, run:
>>
>> mvn clean install.
>>
>> This is create a new juddi-core-3.0.4.jar in the target directory.
>>
>> We will also soon release juddi-3.1.0 which will contain this fix.
>>
>> Thx,
>>
>> -Kurt
>>
>> p.s. the Encrypted version inherits from this one, so the patch fixes that
>> one too.
>>
>>
>>
>> On 3/30/11 11:50 AM, Martynas A. (chainer) wrote:
>>
>> Kurt,
>>
>> Same happens with CryptedXMLDocAuthenticator. Fix that too. Btw when is it
>> possible to expect the fix and in what form (new release/patch)?
>>
>> Martin
>>
>> 2011/3/30 Kurt T Stam <[email protected]>
>>
>>>  Hi Martin,
>>>
>>> I can reproduce it now. The XMLDocAuthenticator has a bug and should be
>>> returning a Publisher.
>>> I reopened the issue.
>>>
>>> --Kurt
>>>
>>>
>>> On 3/30/11 10:45 AM, Martynas A. (chainer) wrote:
>>>
>>> Yes, my code worked properly with 'juddi.authenticator =
>>> org.apache.juddi.v3.auth.JUDDIAuthenticator' in juddi.properties, because it
>>> was default and I wasn't playing around with authentication. I just changed
>>> back to JUDDIAuthenticator to check and it works fine.
>>>
>>> 2011/3/30 Kurt T Stam <[email protected]>
>>>
>>>>  OK I will try one more time. Are you saying it only happens when you
>>>> change the authentication properties and users.xml?
>>>>
>>>> On 3/30/11 10:00 AM, Martynas A. (chainer) wrote:
>>>>
>>>> Kurt,
>>>>
>>>> Well I just simply tried to download a fresh
>>>> 'juddi-portal-bundle-3.0.4.zip', unzip it, setup authentication in
>>>> propeties, create users.xml, startup it and try to save publisher. Same
>>>> exception. In my project I use only "juddi-client-3.0.4.jar" and
>>>> "uddi-ws-.3.0.4.jar" which are related to juddi. No idea.
>>>>
>>>> --Martin
>>>>
>>>> 2011/3/30 Kurt T Stam <[email protected]>
>>>>
>>>>>  Martin,
>>>>>
>>>>> The code is fine. Can it be you deployed the juddi-core.jar more then
>>>>> once? It looks to me like that classcast might be caused by
>>>>> classloading issues, or version mismatch.
>>>>>
>>>>> --Kurt
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
>

Reply via email to