Guofeng, When you raise the issue, assign it to me. I'm most of the way through setting up an environment to deal with this.
thanks Jan On 28 September 2011 22:53, Jesse McConnell <[email protected]>wrote: > Code diff's have to come in through bugzilla before we can apply them, > so if you would open an issue on bugs.eclipse.org and attach the diff > there we can look at applying it....this is standard eclipse policy, > sorry about the hassle :) > > cheers, > jesse > > -- > jesse mcconnell > [email protected] > > > > On Wed, Sep 28, 2011 at 02:30, Guofeng Zhang <[email protected]> > wrote: > > The sources in jetty-7.5.1.v20110908/jetty-jaspi and > > jetty-8.0.1.v20110908/jetty-jaspi are the same each other. > > > > > > > > JASPI does not work in etty-7.5.1.v20110908. Merge what I changed to > > jetty-7.5.1.v20110908 works by my test, so you could first fix it in > Jetty > > 7, then merge the fix to Jetty 8. > > > > > > > > > > > > From: [email protected] > > [mailto:[email protected]] On Behalf Of Jan Bartel > > Sent: Wednesday, September 28, 2011 2:07 PM > > To: JETTY user mailing list > > Subject: Re: [jetty-users] JASPI 196: make it work on Jetty 8 > > > > > > > > Hi, > > > > Thanks for that comprehensive information, we will certainly look into > it. > > > > In saying that jetty-jaspi currently does not work well on jetty-8, does > > this mean that it is working fine > > with jetty-7? We try to maintain as much of the codebase in common > between > > jetty-7 and jetty-8 as > > possible, so I'd like to know if this is something that should go into > > jetty-7, and will then get merged > > into jetty-8, or if this is a problem specific to jetty-8. > > > > thanks > > Jan > > > > On 28 September 2011 15:23, Guofeng Zhang <[email protected]> wrote: > > > > Hi, > > > > > > > > JASPI make us to plug in other authentication module (for example, using > > openID or other mechanism to authenticate users) easier on Jetty for > > container-managed security. There is jetty-jaspi module in the Jetty > source > > code base, but I think it has not been maintained for a long time. > > > > > > > > By making a little fix on jetty-jaspi module, I make the JASPI works well > on > > Jetty 8. I attach the changes. I hope if I did it well, it could be > merged > > into the next Jetty 8 release. > > > > > > > > To use JASPI: > > > > 1. Creating a JASPI configuration XML file for your auth module: > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > <jaspi xmlns="http://geronimo.apache.org/xml/ns/geronimo-jaspi"> > > > > > > > > <configProvider> > > > > <messageLayer>HTTP</messageLayer> > > > > <appContext>/ui</appContext> > > > > <description>description</description> > > > > <serverAuthConfig> > > > > > > > <authenticationContextID>authenticationContextID2</authenticationContextID> > > > > <protected>true</protected> > > > > <serverAuthContext> > > > > <serverAuthModule> > > > > > > > <className>org.eclipse.jetty.security.jaspi.modules.FormAuthModule</className> > > > > <options> > > > > > > org.eclipse.jetty.security.jaspi.modules.LoginPage=/secure/jaaslogin > > > > > > org.eclipse.jetty.security.jaspi.modules.ErrorPage=/secure/jaaserror > > > > </options> > > > > </serverAuthModule> > > > > </serverAuthContext> > > > > </serverAuthConfig> > > > > <persistent>true</persistent> > > > > </configProvider> > > > > </jaspi> > > > > The above using the Jetty built-in FormAuthModule, if you want to use > the > > built-in Basic or Digest auth module, the <serverAuthModule> part should > be: > > > > <serverAuthModule> > > > > > > > <className>org.eclipse.jetty.security.jaspi.modules.DigestAuthModule</className> > > > > <options> > > > > > > org.eclipse.jetty.security.jaspi.modules.RealmName=JAASRealm > > > > </options> > > > > </serverAuthModule> > > > > Or > > > > <serverAuthModule> > > > > > > > <className>org.eclipse.jetty.security.jaspi.modules.BasicAuthModule</className> > > > > <options> > > > > > > org.eclipse.jetty.security.jaspi.modules.RealmName=JAASRealm > > > > </options> > > > > </serverAuthModule> > > > > > > > > Here I use the implementation of JASPI of geronimo-jaspi 2.0-SNAPSHOT > from > > geronimo-jaspi (https://github.com/apache/geronimo-jaspi). you could use > > geronimo-jaspi 1.1.1 release, but you might need to implements > > javax.security.auth.message.config.AuthConfigProvider (and not > > javax.security.auth.message.module.ServerAuthModule) and configure it in > the > > above XML file. > > > > > > > > 2. Configuring your AppContext to use JaspiAuthenticatorFactory. I > > configured it in jetty-web.xml file: > > > > <Configure class="org.eclipse.jetty.webapp.WebAppContext"> > > > > <Set name="securityHandler"> > > > > <New class="org.eclipse.jetty.security.ConstraintSecurityHandler"> > > > > <Set name="loginService"> > > > > <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> > > > > <Set name="name">JAASRealm</Set> > > > > <Set name="loginModuleName">jaas</Set> > > > > </New> > > > > </Set> > > > > > > > > <Set name="authenticatorFactory"> > > > > <New > > class="org.eclipse.jetty.security.jaspi.JaspiAuthenticatorFactory" /> > > > > </Set> > > > > </New> > > > > </Set> > > > > </Configure> > > > > > > > > 3. When launching Jetty, using > > -Dorg.apache.geronimo.jaspic.configurationFile to tell geronimo-jaspi > where > > to find the JASPI configuration file. The following is the > > jetty-maven-plugin configuration (my JASPI configuration file is > > form-test-jaspi-2.xml): > > > > <plugin> > > > > <groupId>org.mortbay.jetty</groupId> > > > > <artifactId>jetty-maven-plugin</artifactId> > > > > <version>${jetty.version}</version> > > > > <configuration> > > > > <scanIntervalSeconds>10</scanIntervalSeconds> > > > > <webAppConfig> > > > > <contextPath>/ui</contextPath> > > > > <parentLoaderPriority>true</parentLoaderPriority> > > > > </webAppConfig> > > > > > > > > <systemProperties> > > > > <systemProperty> > > > > <name>java.security.auth.login.config</name> > > > > <value>./conf/jetty/jaas.conf</value> > > > > </systemProperty> > > > > <systemProperty> > > > > <name>org.apache.geronimo.jaspic.configurationFile</name> > > > > <value>./conf/jaspi/form-test-jaspi-2.xml</value> > > > > </systemProperty> > > > > </configuration> > > > > <dependencies> > > > > <dependency> > > > > <groupId>org.eclipse.jetty</groupId> > > > > <artifactId>jetty-jaspi</artifactId> > > > > <version>${jetty.version}</version> > > > > </dependency> > > > > <dependency> > > > > <groupId>org.apache.geronimo.components</groupId> > > > > <artifactId>geronimo-jaspi</artifactId> > > > > <version>2.0-SNAPSHOT</version> > > > > </dependency> > > > > </dependencies> > > > > </plugin> > > > > In my test, I use my own JAAS login module, which configured in > jaas.conf. > > you could use Jetty built-in login module as described in > > http://wiki.eclipse.org/Jetty/Feature/JAAS. > > > > > > > > Q: what I cannot know if I did it correctly is the changes to > > JaspiAuthenticator. I removed the following lines at the beginning of > > validateRequest(): > > > > if (_allowLazyAuthentication && !mandatory) > > > > return _deferred; > > > > and add the following: > > > > if ( !isMandatory( messageInfo ) ) > > > > return _deferred ; > > > > after “if (authStatus == AuthStatus.SUCCESS)” at line 114. This make me > have > > to add the following in validateRequest() of FormAuthModule class: > > > > Authentication authentication = > > ((org.eclipse.jetty.server.Request)request).getAuthentication() ; > > > > if (authentication instanceof Authentication.Deferred ) > > > > return AuthStatus.SEND_SUCCESS; > > > > or the unprotected resources won’t be handled properly. This makes the > auth > > module to have to know how Authentication.Deferred works, it is not an > > easier to use dependency. This might be that I do not understand > > DeferredAuthentication class clearly. Your advice is appreciated. > > > > > > > > Thanks. > > > > > > > > > > > > _______________________________________________ > > jetty-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/jetty-users > > > > > > > > _______________________________________________ > > jetty-users mailing list > > [email protected] > > https://dev.eclipse.org/mailman/listinfo/jetty-users > > > > > _______________________________________________ > jetty-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
