Are you testing your action with the action mapping you showed? Remember, the
roles are tied to a mapping, not the action class.
Vinicius Carvalho <[EMAIL PROTECTED]> wrote: Well I tried this but did not work:
roles="ADMIN,MANAGER"
type="com.acme.InvoiceList" name="invoiceForm" input="/invoicelist.do">
And on my action:
String roles[] = mapping.getRoleNames();
Problem is that roles has a zero size array.
What have I done wrong here?
Best Regards
On 6/28/06, Paul Benedict
wrote:
> Vinicius,
>
> #1: Do you have any kind of a user object? If so, use the
> HttpServletRequestWrapper to wrap it up in the current request (via a
> filter), and then delegate its isUserInRole method to the user.
>
> #2: Each action mapping has a "role" attribute; it contains a comma delimited
> list of roles that may access the action.
>
> Paul
>
> Vinicius Carvalho wrote: Hello there! I know this kind of question has been
> very very
> discussed. But I've been away from struts for a while.
>
> I need to create two types of actions, one that anyone can access and
> a secure one, based solely on user's roles.
>
> Here's what I've come in mind:
>
> public abstract class BaseAction extends ActionSupport {
>
> protected boolean isUserInRole(HttpServletRequest request){
> return true;
> }
>
> public ActionForward execute(ActionMapping mapping, ActionForm form,
> HttpServletRequest request, HttpServletResponse response) throws
> Exception {
> ActionForward forward = null;
> if(isUserInRole(request)){
> forward = doExecute(mapping,form,request,response);
> }else{
> forward = mapping.findForward("global.naoPermitido");
> }
> return forward;
> }
>
> public abstract ActionForward doExecute(ActionMapping mapping,
> ActionForm form, HttpServletRequest request, HttpServletResponse
> response) throws Exception;
>
>
> public abstract class SecureAction extends BaseAction {
>
> protected boolean isUserInRole(HttpServletRequest request) {
> HttpSession session = request.getSession();
>
> return super.isUserInRole(request);
> }
>
>
> }
>
> Now here's the question :
>
> I'd like to have all SecureAction's subclasses to inform it's parent
> class about which role is required to access that class. It would be
> very nice if that could be done by configuration struts-config.
>
> I was reading about the set-property param. So I could have a
> role:String property on my SecureAction and all subclasses would have
> accessor/muttators for it.
>
> Which would be a nice design for this requirement? I mean, whats the
> best alternative?
>
> Regards
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------
> Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates
> starting at 1�/min.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------
Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates
starting at 1¢/min.