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.html and
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 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

Reply via email to