AW: AW: JASPIC AuthConfigProvider packaged with the web application not found
Dear Mark and Bernd, Thank you for your help and your advice. That helped me alot. I now have an implementation that resides exclusively in the application. Thanks very much :-) Best regards Matthias Keil -Ursprüngliche Nachricht- Von: Mark Thomas Gesendet: Montag, 27. September 2021 18:21 An: users@tomcat.apache.org Betreff: Re: AW: JASPIC AuthConfigProvider packaged with the web application not found On 23/09/2021 07:03, Keil, Matthias (ORISA Software GmbH) wrote: > Hi Bernd, > > Yes, I would like to define my Server Auth module in the jaspic-providers.xml > and then provide the class with the web application. Sorry, that isn't going to be supported. You either need to provide everything at the container level or everything at the web application level. The main concern with configuration at the container level and implementation at the web application level is that web applications can be undeployed at which point everything breaks. I'll update the documentation to make these two options clearer. Mark > > > Mit vielen Grüßen > > Matthias Keil > > -Ursprüngliche Nachricht- > Von: Bernd Schatz > Gesendet: Dienstag, 21. September 2021 23:25 > An: users@tomcat.apache.org > Betreff: Re: JASPIC AuthConfigProvider packaged with the web > application not found > > Hi, > > > Am 19.09.21 um 19:48 schrieb Keil, Matthias (ORISA Software GmbH): >> Hello everyone and thanks for the hints. >> They also work as expected and I can package the provider in the web >> application 😊. >> >> Nevertheless, the Configuration Reference >> (https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html) suggests that >> you define your own provider in jaspic-providers.xml and Tomcat will then >> find it. >> I am really only interested in a separate server auth module (SAM). Since I >> saw no way in the documentation to pack this into the web application. >> That's why I tried the way through the provider. > > > You want to define the class in the jaspic-providers.xml but package the > provider implementation(s) in the application(s) ? > >> >> As I said, your suggestions work, but there are also a number of additional >> classes needed to provide the actual SAM. >> Thank you again > > If you dont need the whole flexibility of JASPI you can also do something > like this: > > > public class MyAuthProvider implements AuthConfigProvider, > ServerAuthConfig, ServerAuthModule, ServerAuthContext > > - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: AW: JASPIC AuthConfigProvider packaged with the web application not found
On 23/09/2021 07:03, Keil, Matthias (ORISA Software GmbH) wrote: Hi Bernd, Yes, I would like to define my Server Auth module in the jaspic-providers.xml and then provide the class with the web application. Sorry, that isn't going to be supported. You either need to provide everything at the container level or everything at the web application level. The main concern with configuration at the container level and implementation at the web application level is that web applications can be undeployed at which point everything breaks. I'll update the documentation to make these two options clearer. Mark Mit vielen Grüßen Matthias Keil -Ursprüngliche Nachricht- Von: Bernd Schatz Gesendet: Dienstag, 21. September 2021 23:25 An: users@tomcat.apache.org Betreff: Re: JASPIC AuthConfigProvider packaged with the web application not found Hi, Am 19.09.21 um 19:48 schrieb Keil, Matthias (ORISA Software GmbH): Hello everyone and thanks for the hints. They also work as expected and I can package the provider in the web application 😊. Nevertheless, the Configuration Reference (https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html) suggests that you define your own provider in jaspic-providers.xml and Tomcat will then find it. I am really only interested in a separate server auth module (SAM). Since I saw no way in the documentation to pack this into the web application. That's why I tried the way through the provider. You want to define the class in the jaspic-providers.xml but package the provider implementation(s) in the application(s) ? As I said, your suggestions work, but there are also a number of additional classes needed to provide the actual SAM. Thank you again If you dont need the whole flexibility of JASPI you can also do something like this: public class MyAuthProvider implements AuthConfigProvider, ServerAuthConfig, ServerAuthModule, ServerAuthContext - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: JASPIC AuthConfigProvider packaged with the web application not found
Hi Matthias, Am 23.09.21 um 08:03 schrieb Keil, Matthias (ORISA Software GmbH): Yes, I would like to define my Server Auth module in the jaspic-providers.xml and then provide the class with the web application. As far as of now, i have only two scenarios in my mind: 1) Transparent for developers/applications * Developer defines the security constraints with e.g. basic authentication in their web.xml * Operating places oidc-lib and the jaspci xml-configuration in tomcat. --> Same war-file can be used for development and production --> The developer doesnt know anything about oidc. 2) Transparent for operating. * Developer put the oidc-lib in their application and is responsible to register the AuthProvider class. In both cases, i assume there exist only one oidc provider in the company (maybe federated with other external oidc provider) with one corresponding oidc-lib implementation. Probably you have an other setup/requirement ? -- greets Bernd - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
AW: JASPIC AuthConfigProvider packaged with the web application not found
Hi Bernd, Yes, I would like to define my Server Auth module in the jaspic-providers.xml and then provide the class with the web application. Mit vielen Grüßen Matthias Keil -Ursprüngliche Nachricht- Von: Bernd Schatz Gesendet: Dienstag, 21. September 2021 23:25 An: users@tomcat.apache.org Betreff: Re: JASPIC AuthConfigProvider packaged with the web application not found Hi, Am 19.09.21 um 19:48 schrieb Keil, Matthias (ORISA Software GmbH): > Hello everyone and thanks for the hints. > They also work as expected and I can package the provider in the web > application 😊. > > Nevertheless, the Configuration Reference > (https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html) suggests that > you define your own provider in jaspic-providers.xml and Tomcat will then > find it. > I am really only interested in a separate server auth module (SAM). Since I > saw no way in the documentation to pack this into the web application. That's > why I tried the way through the provider. You want to define the class in the jaspic-providers.xml but package the provider implementation(s) in the application(s) ? > > As I said, your suggestions work, but there are also a number of additional > classes needed to provide the actual SAM. > Thank you again If you dont need the whole flexibility of JASPI you can also do something like this: public class MyAuthProvider implements AuthConfigProvider, ServerAuthConfig, ServerAuthModule, ServerAuthContext -- Greets Bernd - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: JASPIC AuthConfigProvider packaged with the web application not found
Hi, Am 19.09.21 um 19:48 schrieb Keil, Matthias (ORISA Software GmbH): Hello everyone and thanks for the hints. They also work as expected and I can package the provider in the web application 😊. Nevertheless, the Configuration Reference (https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html) suggests that you define your own provider in jaspic-providers.xml and Tomcat will then find it. I am really only interested in a separate server auth module (SAM). Since I saw no way in the documentation to pack this into the web application. That's why I tried the way through the provider. You want to define the class in the jaspic-providers.xml but package the provider implementation(s) in the application(s) ? As I said, your suggestions work, but there are also a number of additional classes needed to provide the actual SAM. Thank you again If you dont need the whole flexibility of JASPI you can also do something like this: public class MyAuthProvider implements AuthConfigProvider, ServerAuthConfig, ServerAuthModule, ServerAuthContext -- Greets Bernd - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
AW: JASPIC AuthConfigProvider packaged with the web application not found
Hello everyone and thanks for the hints. They also work as expected and I can package the provider in the web application 😊. Nevertheless, the Configuration Reference (https://tomcat.apache.org/tomcat-9.0-doc/config/jaspic.html) suggests that you define your own provider in jaspic-providers.xml and Tomcat will then find it. I am really only interested in a separate server auth module (SAM). Since I saw no way in the documentation to pack this into the web application. That's why I tried the way through the provider. As I said, your suggestions work, but there are also a number of additional classes needed to provide the actual SAM. Thank you again Mit vielen Grüßen Matthias Keil -Ursprüngliche Nachricht- Von: Bernd Schatz Gesendet: Freitag, 17. September 2021 09:53 An: users@tomcat.apache.org Betreff: Re: JASPIC AuthConfigProvider packaged with the web application not found Hi Matthias, Am 17.09.21 um 09:39 schrieb bernd.sch...@daimler.com: > From: "Keil, Matthias (ORISA Software GmbH)" > To: users@tomcat.apache.org > Subject: JASPIC AuthConfigProvider packaged with the web application > not found > > I would like to develop an AuthConfigProvider and would like to deploy it > together in a web application. > > The Tomcat 9 configuration reference for the AuthConfigProvider indicates > that "The implementation may be packaged with the web application or in > Tomcat's $ CATALINA_BASE / lib directory." > > The variant with the $ CATALINA_BASE / lib directory works as expected. My > class of the AuthConfigProvider is found and instantiated. > The variant of packing the implementation together with the web application > does not work. In this case I get a java.lang.ClassNotFoundException. [SNIP] You can register it by using a ServletContextListener (or via CDI): AuthConfigFactory factory = AuthConfigFactory.getFactory(); factory.registerConfigProvider(new AuthProvider(), "HttpServlet", null, "TEST"); -- greets Bernd - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: JASPIC AuthConfigProvider packaged with the web application not found
Bernd, On 9/17/21 03:52, Bernd Schatz wrote: Hi Matthias, Am 17.09.21 um 09:39 schrieb bernd.sch...@daimler.com: From: "Keil, Matthias (ORISA Software GmbH)" To: users@tomcat.apache.org Subject: JASPIC AuthConfigProvider packaged with the web application not found I would like to develop an AuthConfigProvider and would like to deploy it together in a web application. The Tomcat 9 configuration reference for the AuthConfigProvider indicates that "The implementation may be packaged with the web application or in Tomcat's $ CATALINA_BASE / lib directory." The variant with the $ CATALINA_BASE / lib directory works as expected. My class of the AuthConfigProvider is found and instantiated. The variant of packing the implementation together with the web application does not work. In this case I get a java.lang.ClassNotFoundException. [SNIP] You can register it by using a ServletContextListener (or via CDI): AuthConfigFactory factory = AuthConfigFactory.getFactory(); factory.registerConfigProvider(new AuthProvider(), "HttpServlet", null, "TEST"); Don't forget to: private String configRegistrationId; public void contextInitialized(...) { AuthConfigFactory factory = AuthConfigFactory.getFactory(); configRegistrationId = factory.registerConfigProvider(new AuthProvider(), "HttpServlet", null, "TEST"); } public void contextDestroyed(...) { if(null != configRegistrationId) { AuthConfigFactory.getFactory().removeRegistration(configRegistrationId); } } ... or you will introduce a memory leak. -chris - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: JASPIC AuthConfigProvider packaged with the web application not found
Hi Matthias, Am 17.09.21 um 09:39 schrieb bernd.sch...@daimler.com: From: "Keil, Matthias (ORISA Software GmbH)" To: users@tomcat.apache.org Subject: JASPIC AuthConfigProvider packaged with the web application not found I would like to develop an AuthConfigProvider and would like to deploy it together in a web application. The Tomcat 9 configuration reference for the AuthConfigProvider indicates that "The implementation may be packaged with the web application or in Tomcat's $ CATALINA_BASE / lib directory." The variant with the $ CATALINA_BASE / lib directory works as expected. My class of the AuthConfigProvider is found and instantiated. The variant of packing the implementation together with the web application does not work. In this case I get a java.lang.ClassNotFoundException. [SNIP] You can register it by using a ServletContextListener (or via CDI): AuthConfigFactory factory = AuthConfigFactory.getFactory(); factory.registerConfigProvider(new AuthProvider(), "HttpServlet", null, "TEST"); -- greets Bernd - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
JASPIC AuthConfigProvider packaged with the web application not found
Hello I would like to develop an AuthConfigProvider and would like to deploy it together in a web application. The Tomcat 9 configuration reference for the AuthConfigProvider indicates that "The implementation may be packaged with the web application or in Tomcat's $ CATALINA_BASE / lib directory." The variant with the $ CATALINA_BASE / lib directory works as expected. My class of the AuthConfigProvider is found and instantiated. The variant of packing the implementation together with the web application does not work. In this case I get a java.lang.ClassNotFoundException. My question: How can I package my implementation together with the web application? Because apparently only a few people implement their own JASPIC modules, research at Goolge or in the Mail Archive did not help. While debugging I saw that at the point where the AuthConfigProvider class is loaded, there are no class loaders for the web application. Technical details - Tomcat 9.0.37, Windows 10, Tomcat in Eclipse "Use workspace metadata", - In the configuration files under $ CATALINA_BASE / conf I only adjusted the jaspic.xml and entered my class there as the provider thanks in advance Matthias - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org