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
<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
<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] <mailto:[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
<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
<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]
<mailto:[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]
<mailto:[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]
<mailto:[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