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 >>>>> >>>>> >>>>> >>>> >>> >>> >> >> > >
