myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cagatay Civici (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2009) Spring Security integration inside JSF Components
Date Fri, 17 Oct 2008 10:57:44 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-2009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12640497#action_12640497
] 

Cagatay Civici commented on MYFACES-2009:
-----------------------------------------

I am using Spring Security, Spring based JSF backing beans and MyFaces SecurityContext without
a problem, I use DelegatingVariableResolver.  This combination works, maybe there is an issue
with your configuration. You may use this blog entry based on JSF-Spring-Spring Security-Orchestra-JPA
integration:

http://prime.com.tr/cagataycivici/?p=99

> Spring Security integration inside JSF Components
> -------------------------------------------------
>
>                 Key: MYFACES-2009
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2009
>             Project: MyFaces Core
>          Issue Type: New Feature
>          Components: General
>    Affects Versions: 1.1.6
>            Reporter: Juan Pablo Santos Rodríguez
>
> As noted many times, there is no native integration of Spring Security tags inside a
JSF webapp. I've seen a few approaches, but they're mostly custom JSF-Spring-Security components.
In our current project we needed to use Spring Security tags functionality inside any JSF
component (custom or not). We ended reaching MyFaces' own Security Context (http://wiki.apache.org/myfaces/SecurityContext),
which default implementation is J2EE based.
> We've extended it with a custom Spring Security implementation, hence this development,
which is now publicly available, as we think it may be useful for the community. The basic
idea is that Spring's Security Context is going to be available via EL, i.e. you can:
> <h:outputText rendered="#{securityContext.ifAllGranted['ROLE_ADMIN,ROLE_USER']}">how
how how</h:outputText>
> Some notes:
> - The zip is bundled as a maven 2 project, so 'mvn clean install' and add the jar as
a dependency
> - It is a Java 5, Spring 2.5.5, Spring Security 2.0.3, MyFaces 1.1.6 project, this were
customer requirements. Although, all of these should be easily changed, only messing with
dependencies is required O:-) (it should *should* not affect the build, but we've not checked).
> - As it is MyFaces 1.1.x based, it extends Spring's DelegatingVariableResolver. Same
as former statement, it *could* be easily changed, only changing the extended class and the
usual dependency changes. Again, we've not checked (but hey, should be an *easy* change O:-)).

> - Default behaviour of the new Resolver is to check if the requested operation corresponds
to a security operation, if not, runs parent behaviour.
> - IMPORTANT: the security operations available via EL are noted in here: http://wiki.apache.org/myfaces/SecurityContext
. Anyone willing to make available any other operation via EL should extend his own http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/security/SecurityContextPropertyResolver.java?view=markup
implementation and change his faces-config accordingly.
> - There are several classes which have been taken from tomahawk's 1.1.6 sandbox, in order
to make dependencies management a bit easier. This is noted at class-javadoc level.
> - In jsf-example-webapp module just 'mvn jetty:run' to run the example webapp. There
is a dummy security applicationContext, with users and passwords hardcoded in it (this is
only a dumb demo) inside resources folder. Serious applications will likely have a more complex
configuration.
> Configuration:
> 1st.- Make your JSF application Spring Security Aware (http://static.springframework.org/spring-security/site/reference/html/ns-config.html#ns-getting-started)
> 2nd.- Make your JSF application Spring aware (http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html#jsf).
This implementation assumes JSF 1.1 integration (http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html#jsf-delegatingvariableresolver).
JSF 1.2 will require code modification, as noted above.
> 3nd.- In your faces-config.xml set:
>   <faces-config>
>     <application>
>       <variable-resolver>org.apache.myfaces.custom.security.MyFacesSecurityContextSpringDelegatingVariableResolver</variable-resolver>
>       <property-resolver>org.apache.myfaces.custom.security.SecurityContextPropertyResolver</property-resolver>
>       <!-- ... -->
> and that's all.
> cheers,
> juan pablo

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message