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

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to