Hi Ian,

Sorry, I missed something in your previous post and the problem I
solved was a little different but in our case was masking the second
one you describe here. I can confirm that we also have the same
behaviour so I would suggest creating an issue.

Cheers,
Alberto

On Jan 8, 12:08 pm, "Ian.G" <[email protected]> wrote:
> Hi Alberto,
>
> thanks for taking the time to reply.
>
> I've changed the wireup of the realm in jetty-web.xml so it more
> closely matches what you have (i.e instead of doing <Call
> name="setUserRealm"> we now do a <Set name="UserRealm">).  So our
> jetty-web.xml now looks like this:
>
> <?xml version="1.0"?>
> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
> "http://jetty.mortbay.org/configure.dtd";>
> <Configure class="org.mortbay.jetty.webapp.WebAppContext">
>         <Get name="SecurityHandler">
>                 <Set name="UserRealm">
>             <New class="org.mortbay.jetty.security.HashUserRealm">
>                 <Set name="name">SecurityTestRealm</Set>
>                 <Set name="config"><SystemProperty name="jetty.home"
> default="."/>/WEB-INF/etc/realm.properties</Set>
>             </New>
>         </Set>
>         </Get>
> </Configure>
>
> We still get the same errors as I originally reported.  I think the
> way we inject the Realm into the JeTTY SecurityHandler is still almost
> the same - just slightly different XML notation for doing the set.
>
> The Realm does in fact work and when we hit the GWT start page for the
> app it does in fact re-direct to the login page as you would expect as
> stated in my previous response.
>
> I guess for now the errors that come out can be treated as noise
> because the realm does in fact work - its just the [WARN] Unknown
> realm: SecurityTestRealm message that goes to the console implies that
> it wouldn't.
>
> The next thing I have to do now is re-build my Filter that intercepts
> login re-directs when the client-side JavaScript makes an RPC call and
> the session has expired.  I unfortuately lost this class as I hadn't
> dropped it into our svn repo before I rebuilt my entire eclipse
> environment (doh!).  Its not too bad so I should have that back again
> soon.
>
> I hope I can get to the point where I can document what I think is
> probably the most straight forward way of getting J2EE container
> managed security and sessions working with GWT.  There are lots of
> chunks of useful information about this out there - but there isn't a
> single source of information that pulls it all together with a full
> working example for people to study.  Maybe I will try and do this.
>
> Regards
>
> Ian.
>
> On Jan 8, 9:47 am, lemaiol <[email protected]> wrote:
>
> > Hi Ian,
>
> > It seems that the Jetty version could have changed and also its API.
> > Try with this little change in the syntax of the configuration (we
> > guessed it looking at the jetty classes API and it worked for us):
>
> > cheers,
> > Alberto
>
> > <?xml version="1.0"?>
> > <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
> >         "http://jetty.mortbay.org/configure.dtd";>
> > <Configure class="org.mortbay.jetty.webapp.WebAppContext">
> >     <Get name="SecurityHandler">
> >         <Set name="UserRealm">
> >             <New class="org.mortbay.jetty.security.HashUserRealm">
> >                 <Set name="name">MyRealm</Set>
> >                 <Set name="config">WEB-INF/dev_realm.properties</Set>
> >             </New>
> >         </Set>
> >     </Get>
> > </Configure>
>
> > On Jan 6, 3:32 pm, "Ian.G" <[email protected]> wrote:
>
> > > Hi Folks - my first post on the discussion group so big thanks to
> > > everyone involved in this great project.
>
> > > We've recently moved up to GWT 2.0 from GWT 1.7 and everything has
> > > gone quite smoothly so far.
>
> > > One of the issues I have with the application I'm developing is that
> > > it needs to be secured by J2EE security and correctly manage session
> > > timeout etc.
>
> > > I know there are lots of hazy bits of information about how/how not to
> > > do this along with potential problems the developer faces with the GWT-
> > > RPC interface calls from the client after the session has expired etc.
> > > - but I think in GWT 1.7 we had a 99% working solution to this that
> > > wasn't anything whacky like using client-side timers to keep the
> > > session alive - I just need to continue on and complete it now we've
> > > moved over to GWT 2.0
>
> > > I'll describe the problem and to take away the need to understand
> > > anything specific to my app so this can all be re-produced from a std
> > > wizard-generated GWT project in ecliipse 3.5 (i.e. the Greeting sample
> > > that gets built when you start a new project).  This sample wont
> > > gracefully manage session expiry with GWT-RPC – but it will show a
> > > problem that I think I've found with the GWT 2.0 eclipse plugin and
> > > J2EE authentication.
>
> > > This is the start of how I previously made GWT (before version 2.0)
> > > use J2EE security - and get realm-based security working in the
> > > Eclipse DEV environment (and thus whatever container we deploy into
> > > for production systems from the app's .war file).
>
> > > in the applications WEB-INF directory I have a jetty-web.xml that
> > > contains the following:
>
> > > <?xml version="1.0"?>
> > > <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
> > > "http://jetty.mortbay.org/configure.dtd";>
> > > <Configure class="org.mortbay.jetty.webapp.WebAppContext">
> > >         <Get name="SecurityHandler">
> > >                 <Call name="setUserRealm">
> > >                         <Arg>
> > >                         <!--  Hash File-based Security Realm -->
> > >                         <New 
> > > class="org.mortbay.jetty.security.HashUserRealm">
> > >                                 <Set name="name">SecurityTestRealm</Set>
> > >                                 <Set name="config"><SystemProperty 
> > > name="jetty.home"
> > > default="."/>/WEB-INF/etc/realm.properties</Set>
> > >                                 <Set name="RefreshInterval">5</Set>
> > >                         </New>
> > >                         </Arg>
> > >                 </Call>
> > >         </Get>
> > > </Configure>
>
> > > This is obviously used to inject a security realm into the JeTTY
> > > instance that runs within the Eclipse plugin for GWT.  This has always
> > > worked perfectly on GWT 1.7 (using the old external hosted mode
> > > runtime).
>
> > > Then down in WEB-INF/etc/realm.properties we just add our users, and
> > > role mappings as per the JeTTY documentation - for example:
>
> > > username: password,testrole
>
> > > At this point when I start the application I know the embedded JeTTY
> > > server within the GWT plugin for eclipse is picking up the jetty-
> > > web.xml file as it complains if the realm file can't be found if I
> > > don't create it etc.
>
> > > Obviously the next thing that needs to be done is plug in all the J2EE
> > > security and session management stuff in the applications main
> > > web.xml.  So based upon a wizard generated project you would end up
> > > with something like:
>
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
> > > Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd";>
> > > <web-app>
> > >         <description>A sample GWT Application that makes use of J2EE 
> > > security
> > > and sessions</description>
>
> > >         <!-- Servlets -->
>
> > >         <servlet>
> > >                 <servlet-name>greetServlet</servlet-name>
> > >                 <servlet-
> > > class>uk.co.somecompany.securitytest.server.GreetingServiceImpl</
> > > servlet-class>
> > >         </servlet>
>
> > >         <servlet-mapping>
> > >                 <servlet-name>greetServlet</servlet-name>
> > >                 <url-pattern>/securitytest/greet</url-pattern>
> > >         </servlet-mapping>
>
> > >         <!--Session Management -->
>
> > >         <session-config>
> > >                 <session-timeout>10</session-timeout>
> > >         </session-config>
>
> > >         <!-- Default page to serve -->
>
> > >         <welcome-file-list>
> > >                 <welcome-file>SecurityTest.html</welcome-file>
> > >         </welcome-file-list>
>
> > >         <!--  Application Security -->
>
> > >         <security-constraint>
> > >                 <display-name>Security</display-name>
> > >                 <web-resource-collection>
> > >                         <web-resource-name>Security</web-resource-name>
> > >                         <description>This Constraint works across the 
> > > website</description>
> > >                         <url-pattern>/securitytest/*</url-pattern>
> > >                         <url-pattern>/SecurityTest.html</url-pattern>
> > >                         <url-pattern>/SecurityTest.css</url-pattern>
> > >                 </web-resource-collection>
> > >                 <auth-constraint>
> > >                         <role-name>testrole</role-name>
> > >                 </auth-constraint>
> > >         </security-constraint>
>
> > >         <!-- This application uses FORM authentication -->
>
> > >         <login-config>
> > >                 <auth-method>FORM</auth-method>
> > >                 <realm-name>SecurityTestRealm</realm-name>
> > >                 <form-login-config>
> > >                         <form-login-page>/login.jsp</form-login-page>
> > >                         
> > > <form-error-page>/login.jsp?error=true</form-error-page>
> > >                 </form-login-config>
> > >         </login-config>
>
> > >         <!-- Define roles -->
>
> > >         <security-role>
> > >                 <role-name>testrole</role-name>
> > >         </security-role>
> > > </web-app>
>
> > > (Obviously the login.jsp page provides a simple HTML form that posts
> > > to j_security_check – all standard stuff)
>
> > > Both the web.xml and jetty-web.xml were both validated 100% against
> > > their respective DTDs.
>
> > > When we start up the GWT app in eclipse (either run or debug) we see
> > > the following in the eclipse console.
>
> > > 2010-01-06 13:30:37.581 java[1317:a07] [Java CocoaComponent
>
> ...
>
> read more »
-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.


Reply via email to