Hi,

   Thank you for sharing the idea. I am also working on the authorization
and authentication of my application.

"The authentication interceptor checks the action method for @Secured
annotation and checks the session to see if the user has logged in. If not,
the target page and parameters are saved in the session and the user is
redirected to the login page.
There is a login action that authenticates the user (using database, files,
...) and saves any needed data in the session. It then uses a LoginResult
that redirects to the target page (the secured page that the user was
redirected from) and sets the saved parameters for that page."

 My application contains lot of values in the session.So i need to populate
the session after logging in using Action class of the login page. I am
thinking of a design for allowing users to bookmark a page. After he selects
a bookmarked page, if he is not logged in he should be redirected to login
page and after logging in , he should come to the bookmarked page which is
like what you explained above. Can you please tell me how did you do this.

Regards
Viplav Kallepu








Mahdi Milani Fard <[EMAIL PROTECTED]> wrote:


Hi,

I'm developing a Struts 2 application which needs non-role-based
authorization (e.g. a user can see the messages of a group if he is a
member, etc.) Realm is not enough in such case and you need to add some
authorization code to each action if you use realm. I developed an
authentication/authorization mechanism using annotation for this problem.
I
thought it's good to share this with other struts users.

I use two interceptors:
The authentication interceptor along with @Secured annotation:


@Secured
public String getMessageList() {
   ...
}


The authentication interceptor checks the action method for @Secured
annotation and checks the session to see if the user has logged in. If
not,
the target page and parameters are saved in the session and the user is
redirected to the login page.

There is a login action that authenticates the user (using database,
files,
...) and saves any needed data in the session. It then uses a LoginResult
that redirects to the target page (the secured page that the user was
redirected from) and sets the saved parameters for that page.

The second interceptor is authorization interceptor along with the
@Authorizer annotation:


@Secured
@Authorizer("isMember")
public String getMessageList() {
   ...
}

boolean isMember() {
   ...
}


Here the interceptor checks the action method for @Authorizer interceptor.
If such annotation exists it uses reflection to call the indicated methods
(e.g. "isMember") on the same action object. If you add the authorization
interceptor in the correct place in the interceptor stack, at the time the
authorizer method is called, the action bean is populated using the
setters.
So the authorizer can use the filled values to check for authorization and
returns a boolean indicating if the current user (saved in session) is
authorized to do the action (with respect to the filled parameters.)

Although it looks like re-inventing the wheel, I think this mechanism is
good enough for simple authentication/authorization.
--
View this message in context:
http://www.nabble.com/Simple-authentication-authorization-with-Struts-2-using-annotation-tf4109818.html#a11687101
Sent from the Struts - User mailing list archive at Nabble.com.


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




--
Regards
Viplav Kallepu

Reply via email to