You might be facing the TAP5-1018 Bug i've reported... https://issues.apache.org/jira/browse/TAP5-1018
_______________________ Everton Agner Ramos 2010/11/17 Kalle Korhonen <kalle.o.korho...@gmail.com> > Wonder if Start is handled differently than Index - if you can, please > check and open (Tynamo) issue accordingly. > > Kalle > > > On Wed, Nov 17, 2010 at 1:44 AM, Paul Stanton <p...@mapshed.com.au> wrote: > > Hi Kalle, > > > > I've just tried t-s 0.2.1 and the > > org.apache.shiro.authz.annotation.RequiresAuthentication annotation. > > > > package zzz.pages; > > > > @RequiresAuthentication > > public class Start > > {} > > > > The same problem occurs. > > http://host/app/start - correctly directs to the login page > > http://host/app/ - incorrectly displays the page content > > > > regards, paul. > > > > > > On 16/11/2010 11:50 AM, Kalle Korhonen wrote: > >> > >> Move to tapestry-security 0.2.1 and use the Shiro > >> @RequiresAuthentication annotation instead. The *All annotations were > >> removed since I implemented them in Shiro directly (one of the > >> benefits of being a committer in both). We do have a couple of tests > >> for the case and those are passing. There's a possibility that it was > >> an issue with Shiro 1.0.0-incubating release. > >> > >> Kalle > >> > >> > >> On Sat, Nov 13, 2010 at 2:28 PM, Paul Stanton<p...@mapshed.com.au> > wrote: > >>> > >>> Also, > >>> > >>> I've marked my 'Start' page as @RequiresAuthenticationAll, and it > >>> correctly > >>> forwards to the login page when not already authenticated if the url is > >>> > >>> http://host/app/start > >>> > >>> however it displays the page's content if the url is > >>> > >>> http://host/app/ > >>> > >>> This appears to be a bug IMO, is there a way to work around this or > >>> should I > >>> log an issue? > >>> > >>> p. > >>> > >>> On 12/11/2010 10:50 PM, Paul Stanton wrote: > >>>> > >>>> Kalle, > >>>> > >>>> Leaving that one behind... > >>>> > >>>> Where can I find the documentation regarding the various tapestry > >>>> components and pages provided by tapestry-security? > >>>> > >>>> The Javadoc only contains explainations for 5/11 of the components: > >>>> > >>>> http://tynamo.org/constant/tapestry-security/apidocs/index.html > >>>> > >>>> Also, is there a SVN i can download the source code from? > >>>> > >>>> regards, Paul. > >>>> > >>>> On 12/11/2010 10:56 AM, Kalle Korhonen wrote: > >>>>> > >>>>> On Thu, Nov 11, 2010 at 2:25 PM, Paul Stanton<p...@mapshed.com.au> > >>>>> wrote: > >>>>>> > >>>>>> Interesting. You can see the need for the behaviour but not the need > >>>>>> to > >>>>>> expose/implement it cleanly via the API. > >>>>> > >>>>> No, that's the wrong conclusion. Subscribe to the shiro dev list, we > >>>>> recently had extensive discussion on this but in the meantime I'm > >>>>> saying that you should do and I have done whatever I needed for my > >>>>> current needs. > >>>>> > >>>>> Kalle > >>>>> > >>>>> > >>>>>> For mine, I don't see why > >>>>>> 'HashedCredentialsMatcher.hashProvidedCredentials' > >>>>>> and 'getCredentials' are protected, this makes it impossible to > >>>>>> expose > >>>>>> the > >>>>>> hashing functionality without subclassing, which means it is less > >>>>>> trivial to > >>>>>> change hash provider - the parent class of your custom HCM needs to > >>>>>> change. > >>>>>> > >>>>>> So I'll implement it like so: > >>>>>> > >>>>>> 1. Subclass chosen implementation of HashedCredentialsMatcher and > add > >>>>>> 'getHashedCredentials' to expose 'getCredentials' > >>>>>> > >>>>>> public class AppCredentialsMatcher extends Md5CredentialsMatcher // > >>>>>> for > >>>>>> example > >>>>>> { > >>>>>> public Object getHashedCredentials(AuthenticationToken token) > >>>>>> { > >>>>>> return getCredentials(token); > >>>>>> } > >>>>>> } > >>>>>> > >>>>>> 2. add 'getHashedCredentials' to my Realm: > >>>>>> > >>>>>> public String getHashedCredentials(String username, String > >>>>>> password) > >>>>>> { > >>>>>> UsernamePasswordToken token = new > >>>>>> UsernamePasswordToken(username, > >>>>>> password); > >>>>>> return String.valueOf(((AppCredentialsMatcher) > >>>>>> getCredentialsMatcher()).getHashedCredentials(token)); > >>>>>> } > >>>>>> > >>>>>> Maybe something like this could be built into the API? > >>>>>> > >>>>>> Regards, paul. > >>>>>> > >>>>>> > >>>>>> On 12/11/2010 3:30 AM, Kalle Korhonen wrote: > >>>>>>> > >>>>>>> Hmm.. if you use username as the salt, you already have stored the > >>>>>>> salt. For my own custom and application-specifc CredentialsMatcher > >>>>>>> implementations, I'm not too purist about these things: sometimes > >>>>>>> I've > >>>>>>> done it by just adding a static encode operation as part of the > >>>>>>> CredentialsMatcher, e.g.: > >>>>>>> public static String encode(String password, int saltWidth, > >>>>>>> int > >>>>>>> hashIterations) {...} > >>>>>>> > >>>>>>> Kalle > >>>>>>> > >>>>>>> > >>>>>>> On Thu, Nov 11, 2010 at 2:06 AM, Paul Stanton<p...@mapshed.com.au> > >>>>>>> wrote: > >>>>>>>> > >>>>>>>> Kalle, > >>>>>>>> > >>>>>>>> I think you misunderstood my question. I don't have a problem with > >>>>>>>> using > >>>>>>>> the > >>>>>>>> username as the salt, the salt has to be stored parallel to the > user > >>>>>>>> entity > >>>>>>>> somewhere anyway. > >>>>>>>> > >>>>>>>> I would like to know how to get access to the CredentialsMatcher > and > >>>>>>>> have > >>>>>>>> it > >>>>>>>> generate the hashed password for me NOT when authenticating but at > >>>>>>>> the > >>>>>>>> time > >>>>>>>> the user registers. > >>>>>>>> > >>>>>>>> In my opinion, the encoding scheme should be configured once, and > >>>>>>>> the > >>>>>>>> CredentialsMatcher seems like the obvious place so I would like to > >>>>>>>> use > >>>>>>>> it > >>>>>>>> whenever I need to generate the hashed version of the password. > >>>>>>>> > >>>>>>>> I'm thinking the only way to achieve this is to extend one of the > >>>>>>>> implementations of HashedCredentialsMatcher and expose a method > >>>>>>>> which > >>>>>>>> calls > >>>>>>>> 'hashProvidedCredentials', and then add another method on the > Realm > >>>>>>>> to > >>>>>>>> in > >>>>>>>> turn expose this feature. > >>>>>>>> > >>>>>>>> This seems like a lot of effort and reduces the flexibility of the > >>>>>>>> architecture. For something that must be a common need and > therefore > >>>>>>>> should > >>>>>>>> be exposed by the API, so i'm wondering if I've missed some > crucial > >>>>>>>> feature. > >>>>>>>> > >>>>>>>> Regards, paul. > >>>>>>>> > >>>>>>>> On 11/11/2010 5:04 PM, Kalle Korhonen wrote: > >>>>>>>>> > >>>>>>>>> On Wed, Nov 10, 2010 at 8:44 PM, Paul Stanton< > p...@mapshed.com.au> > >>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> Firstly, I'd like to use a salted hash to match credentials... > the > >>>>>>>>>> booking > >>>>>>>>>> example application does not do this and the documentation (for > >>>>>>>>>> shiro) > >>>>>>>>>> doesn't quite show the complete picture. > >>>>>>>>> > >>>>>>>>> Yeah I bet you are right on that. That should just work in my > >>>>>>>>> opinion > >>>>>>>>> without end user having to do any extra work. But you are in luck > >>>>>>>>> with > >>>>>>>>> that, kind of. 1.1.0 Shiro just added "built-in" support for > >>>>>>>>> per-user-salt. tapestry-security 0.3.0-SNAPSHOT integrates with > >>>>>>>>> 1.1.0 > >>>>>>>>> Shiro and I'm going to cut the release pretty soon. See > >>>>>>>>> http://www.mail-archive.com/d...@shiro.apache.org/msg00107.htmland > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > http://svn.apache.org/repos/asf/shiro/trunk/core/src/test/java/org/apache/shiro/authc/credential/HashedCredentialsMatcherTest.java > >>>>>>>>> for ideas). > >>>>>>>>> > >>>>>>>>>> How can I get a handle to an instance of my CredentialsMatcher > and > >>>>>>>>>> then > >>>>>>>>>> expose the method of hashing? should I make it a service too? I > >>>>>>>>>> want > >>>>>>>>>> to > >>>>>>>>>> get > >>>>>>>>>> a handle to it in 2 places: > >>>>>>>>>> 1. at signup so i can persist the hashed password using the > >>>>>>>>>> identical > >>>>>>>>>> hashing mechanism > >>>>>>>>>> 2. in a database upgrade step so i can convert clear-text > >>>>>>>>>> passwords > >>>>>>>>>> into > >>>>>>>>>> the > >>>>>>>>>> hashed version > >>>>>>>>> > >>>>>>>>> I think you should handle all of this as part of your realm > >>>>>>>>> implementation with a custom AccountInfo. Not difficult to > >>>>>>>>> implement > >>>>>>>>> but some amount of API learning to do. I've been fancying myself > >>>>>>>>> with > >>>>>>>>> the idea of creating a tapestry-security-hibernate module with > >>>>>>>>> prefabricated (JPA) entitities because it's just pointless to do > >>>>>>>>> the > >>>>>>>>> same for every little webapp separately. > >>>>>>>>> > >>>>>>>>>> Why and how should I implement > >>>>>>>>>> AuthorizingRealm.doGetAuthorizationInfo(PrincipalCollection > >>>>>>>>>> principals) > >>>>>>>>>> ? > >>>>>>>>>> When would it be called in my basic application? > >>>>>>>>> > >>>>>>>>> It'll be called right after doGetAuthentication() assuming it > >>>>>>>>> succeeds > >>>>>>>>> if your realm promises to authorize users as well. A simple > example > >>>>>>>>> is > >>>>>>>>> that you could have a realm just to authenticate users against > >>>>>>>>> Facebook, Google etc. while another realm would be responsible > for > >>>>>>>>> *authorizing* users using the permission information (roles etc) > >>>>>>>>> stored in the local database. Often for a simpler webapp, you > have > >>>>>>>>> just a single realm which does both authentication and > >>>>>>>>> authorization. > >>>>>>>>> > >>>>>>>>> Kalle > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> On 11/11/2010 2:29 AM, Kalle Korhonen wrote: > >>>>>>>>>>> > >>>>>>>>>>> Ah you are looking for documentation on Shiro. Maybe I can > place > >>>>>>>>>>> the > >>>>>>>>>>> links to it more prominently on tapestry-security page, but see > >>>>>>>>>>> http://shiro.apache.org/core.html (there's more but for now > >>>>>>>>>>> Subject > >>>>>>>>>>> and Realms are the most relevant to you). If you want examples, > >>>>>>>>>>> Christophe's hotel booking demo with Tynamo > >>>>>>>>>>> > >>>>>>>>>>> ( > https://github.com/ccordenier/tapestry5-hotel-booking/tree/tynamo) > >>>>>>>>>>> is > >>>>>>>>>>> very nice. > >>>>>>>>>>> > >>>>>>>>>>> Kalle > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > --------------------------------------------------------------------- > >>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > --------------------------------------------------------------------- > >>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>>> > --------------------------------------------------------------------- > >>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>>>>> > >>>>>>>> > >>>>>>> > --------------------------------------------------------------------- > >>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>>>> > >>>>>>> > >>>>>> > --------------------------------------------------------------------- > >>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>>> > >>>>>> > >>>>> --------------------------------------------------------------------- > >>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>>> > >>>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>>> > >>>> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >