Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for change notification.
The following page has been changed by JesperZedlitz: http://wiki.apache.org/tapestry/AcegiSpringJava5Part2 New page: * AcegiSpringJava5 - First part of the tutorial Now that I know how to protect my Tapestry pages I would like to print the name of a registered user. That is not difficult... To avoid duplicated code I created a base class for {{{Home.java}}} and {{{Secured.java}}}: {{{src/main/java/de/zedlitz/tapestry/acegi/UserPage.java}}} {{{ package de.zedlitz.tapestry.acegi; import org.acegisecurity.Authentication; import org.acegisecurity.context.SecurityContextHolder; import org.acegisecurity.userdetails.UserDetails; public abstract class UserPage extends org.apache.tapestry.html.BasePage { public String getUserName() { String userName = null; if( SecurityContextHolder.getContext() != null ) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if( auth != null ) { Object principal = auth.getPrincipal(); if( principal != null ) { if( principal instanceof UserDetails ) { userName = ((UserDetails)principal).getUsername(); } else { userName = principal.toString(); } } } } if( userName == null ) { userName = ""; } return userName; } } }}} The two existing pages extend this base class: {{{src/main/java/de/zedlitz/tapestry/acegi/Home.java}}} {{{ package de.zedlitz.tapestry.acegi; public abstract class Home extends UserPage { } }}} {{{src/main/java/de/zedlitz/tapestry/acegi/Secured.java}}} {{{ package de.zedlitz.tapestry.acegi; @org.acegisecurity.annotation.Secured("ROLE_USER") public abstract class Secured extends UserPage {} }}} The last step is to display the username on the html pages: {{{src/main/webapp/Home.html}}} {{{ <html> <head> <title>tapestry-acegi: normal page</title> </head> <body> <h1>tapestry-acegi: normal page</h1> <p>You are logged in as <em><span jwcid="@Insert" value="ognl:userName">Timmi Tester</span></em>.</p> <p><a href="Secured.html" jwcid="@PageLink" page="Secured">secured page</a></p> </body> </html> }}} {{{src/main/webapp/Home.html}}} {{{ <html> <head> <title>tapestry-acegi: secured page</title> </head> <body> <h1>tapestry-acegi: secured page</h1> <p>You are logged in as <em><span jwcid="@Insert" value="ognl:userName">Timmi Tester</span></em>.</p> <p><a href="Home.html" jwcid="@PageLink" page="Home">back to homepage</a></p> </body> </html> }}} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
