Hi Adnrea, 

I'll go through the links you provided and I will spend some time improving
my code before updating the wiki. 
At the moment I feel that my code is more of a hack than a nice solution.

Petros


Andreas Andreou-3 wrote:
> 
> Petros, hi.
> It would be nice to have this in the wiki,
> http://wiki.apache.org/tapestry/FrontPage
> 
> BTW, there's already some T4.x related acegi pages there
> (http://wiki.apache.org/tapestry/AcegiSpringJava5?highlight=%28acegi%29)
> 
> 
> On 5/17/07, petros <[EMAIL PROTECTED]> wrote:
>>
>>
>> Hi
>>
>> I integrated T5.0.4 with Acegi and I wanted to share my code with this
>> forum.
>> The solution may not be the best approach but it could save you sometime
>> for
>> now.
>> I am only providing the security related code.
>>
>> Login.html
>> <t:layoutcmpnt
>> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
>>
>>         <t:loginForm>
>>                 <div class="error_message">
>>                         ${errorMessage}
>>                 </div>
>>                 <t:if test="feedbackMessage">
>>                         <div class="feedback_message">
>>                 ${feedbackMessage}
>>                 </div>
>>                 </t:if>
>>
>>                 <t:label for="usernameField"/>:
>>                 <input t:type="TextField" t:id="usernameField"
>> size="15"/>
>>                 <br/>
>>                 <t:label for="passwordField"/>:
>>                 <input t:type="PasswordField" t:id="passwordField"
>> size="15"/>
>>                 <br />
>>                 <div align="center">
>>                         <p>
>>                                 <t:Submit t:value="message:login-label"
>> />
>>                         </p>
>>                 </div>
>>         </t:loginForm>
>>
>> Login.java
>>         private String username;
>>         private String password;
>>         private String emailAddress;
>>
>>     @Component
>>     private Form loginForm;
>>
>>         @Persist
>>         public String errorMessage;
>>
>>         @Persist
>>         public String feedbackMessage;
>>
>>         @Inject
>>         @Service("RequestGlobals")
>>         private RequestGlobals requestGlobals;
>>
>>         @Inject
>>         private Messages messages;
>>
>>     @PageAttached
>>     void pageAttached(MarkupWriter writer)
>>     {
>>                 @SuppressWarnings("unused")
>>                 String errorParamAsString =
>> requestGlobals.getRequest().getParameter("error");
>>
>>                 boolean error = Boolean.parseBoolean(errorParamAsString);
>>         if(error)
>>         {
>>                 errorMessage = messages.format("login-error-message", new
>> Object[]{});
>>                 feedbackMessage = "";
>>         }
>>         else
>>         {
>> //              errorMessage = "";
>>         }
>>     }
>>
>>     Object onSuccessFromLoginForm()
>>     {
>>         Link acegiLoginLink = new LinkImpl(new NoOpURLEncoder() ,
>> "jumpstart",
>> "j_security_check");
>>         acegiLoginLink.addParameter("j_username", username);
>>         acegiLoginLink.addParameter("j_password", password);
>>
>>
>>         return acegiLoginLink;
>>     }
>>
>> ... getters and setters
>>
>> LayoutCmpnt.java
>>         public User getTapestryPrincipal() {
>>                 User tapestryPrincipal = null;
>>                 Authentication authentication =
>> SecurityContextHolder.getContext().getAuthentication();
>>
>>                 if(authentication != null)
>>                 {
>>                         Object acegiPrincipal =
>> authentication.getPrincipal();
>>                         if(acegiPrincipal != null)
>>                         {
>>
>>                                 if(acegiPrincipal instanceof String)
>>                                 {
>>                                         tapestryPrincipal = null;
>>                                 }
>>                                 else
>>                                 {
>>
>>                                         tapestryPrincipal = (User)
>> acegiPrincipal;
>>                                 }
>>                         }
>>                 }
>>                 return tapestryPrincipal;
>>         }
>>
>> LayoutCmpnt.html
>> <strong>${tapestryPrincipal.username}</strong>
>>
>> Update Acegi Security Context
>> I also have this code where the user's details are updated in order to
>> keep
>> the Acegi Principal up to date.
>>
>> UsernamePasswordAuthenticationToken token = new
>>    UsernamePasswordAuthenticationToken(updatedUser,updatedUsername,
>> updatedAuthorities);
>>    SecurityContextHolder.getContext().setAuthentication(token);
>>
>> Petros
>> --
>> View this message in context:
>> http://www.nabble.com/Tapestry-5-and-Acegi-tf3769520.html#a10657302
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> 
> -- 
> Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
> Tapestry / Tacos developer
> Open Source / JEE Consulting
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Tapestry-5-and-Acegi-tf3769520.html#a10657702
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to