En l'instant précis du 19/04/07 11:17, Zohner, Michael s'exprimait en
ces termes:
> How to do that ?
>   
Obviously by having more appropriate <url-pattern/> in your
<web-resource-collection/>
> It would be also ok to protect the whole directory (so, then it is 
> independent, which suffix the pages have).
>
> But who can I get this working ? 
>
> -----Original Message-----
> From: David Delbecq [mailto:[EMAIL PROTECTED] 
> Sent: 19 April 2007 11:17
> To: MyFaces Discussion
> Subject: Re: Security - protect JSF pages (.xhtml) via security in web.xml -> 
> DOES NOT WORK ? -> THE WEB.XML !
>
> your security constraint's url pattern
>  <url-pattern>/rule/ruleList.xhtml</url-pattern>
>
> Only prevent unauthorized users from pointing their browser at 
> http://server/yourWebapp//rule/ruleList.xhtml
>
> It does not prevent them from pointing browser to 
> http://server/yourWebapp/rule/ruleList.faces or 
> http://server/yourWebapp/rule/ruleList.jsf
>
> you probably want to have url pattern for .faces and .jsf instead of .xhtml
>
>
> En l'instant précis du 19/04/07 10:52, Zohner, Michael s'exprimait en ces 
> termes:
>   
>> Hi,
>>
>> I dont know if I really understood Martins proposal.
>>
>> We have to use the scurity constraint I think.
>>
>> Here is the web.xml:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee";
>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
>> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
>>  <description>Data Staging area for Static data</description>  
>> <display-name>App</display-name>
>>
>>  <filter>
>>   <display-name>Ajax4jsf Filter</display-name>
>>   <filter-name>ajax4jsf</filter-name>
>>   <filter-class>org.ajax4jsf.FastFilter</filter-class>
>>  </filter>
>>
>>  <!-- Tomahawk stuff -->
>>  <filter>
>>   <filter-name>extensionsFilter</filter-name>
>>   <!-- Old: org.apache.myfaces.component.html.util.ExtensionsFilter -->
>>   
>> <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
>>   <init-param>
>>    <description></description>
>>    <param-name>maxFileSize</param-name>
>>    <param-value>2m</param-value>
>>   </init-param>
>>   <init-param>
>>    <param-name>uploadThresholdSize</param-name>
>>    <param-value>100k</param-value>
>>   </init-param>
>>  </filter>
>>
>>
>>  <filter-mapping>
>>   <filter-name>ajax4jsf</filter-name>
>>   <servlet-name>faces</servlet-name>
>>   <dispatcher>REQUEST</dispatcher>
>>   <dispatcher>FORWARD</dispatcher>
>>   <dispatcher>INCLUDE</dispatcher>
>>  </filter-mapping>
>>  <filter-mapping>
>>   <filter-name>extensionsFilter</filter-name>
>>   <servlet-name>faces</servlet-name>
>>  </filter-mapping>
>>  <filter-mapping>
>>   <filter-name>extensionsFilter</filter-name>
>>   <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
>>  </filter-mapping>
>>
>>  <context-param>
>>     <description></description>
>>     <param-name>javax.faces.CONFIG_FILES</param-name>
>>     <param-value>
>>         /WEB-INF/faces-beans.xml,/WEB-INF/faces-nav.xml
>>     </param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <description></description>
>>   <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
>>   <param-value>server</param-value>
>>  </context-param>
>>
>>  <!-- IMPORTANT for ajax4jsf -->
>>  <context-param>
>>   <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
>>   <param-value>com.sun.facelets.FaceletViewHandler</param-value>
>>  </context-param>
>>
>>   <!-- Use Documents Saved as *.xhtml -->  <context-param>
>>   <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
>>   <param-value>.xhtml</param-value>
>>  </context-param>
>>
>>   <context-param>
>>   <param-name>facelets.REFRESH_PERIOD</param-name>
>>   <param-value>2</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <param-name>facelets.DEVELOPMENT</param-name>
>>   <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>     <param-name>com.sun.faces.validateXml</param-name>
>>     <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>     <param-name>com.sun.faces.verifyObjects</param-name>
>>     <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>     <param-name>org.ajax4jsf.SKIN</param-name>
>>     <param-value>dkib</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <param-name>facelets.LIBRARIES</param-name>
>>   <param-value>
>>      
>> /WEB-INF/taglib/tomahawk.taglib.xml;/WEB-INF/taglib/facestrace.taglib.xml
>>   </param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <description></description>
>>   <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
>>   <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
>>   <param-value>false</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <description></description>
>>   <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
>>   <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <description></description>
>>   <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
>>   <param-value>true</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name>
>>   <param-value>false</param-value>
>>  </context-param>
>>
>>  <context-param>
>>   <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
>>   <param-value>false</param-value>
>>  </context-param>
>>
>>
>>     <servlet>
>>         <servlet-name>faces</servlet-name>
>>         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
>>         <load-on-startup>1</load-on-startup>
>>     </servlet>
>>
>>      <servlet>
>>              <servlet-name>jsp</servlet-name>
>>              <servlet-class>
>>                      org.apache.jasper.servlet.JspServlet
>>              </servlet-class>
>>              <init-param>
>>                      <param-name>keepgenerated</param-name>
>>                      <param-value>true</param-value>
>>              </init-param>
>>              <init-param>
>>                      <param-name>logVerbosityLevel</param-name>
>>                      <param-value>FATAL</param-value>
>>              </init-param>
>>              <init-param>
>>                      <param-name>classdebuginfo</param-name>
>>                      <param-value>true</param-value>
>>              </init-param>
>>              <init-param>
>>                      <param-name>enablePooling</param-name>
>>                      <param-value>false</param-value>
>>              </init-param>
>>              <load-on-startup>0</load-on-startup>
>>      </servlet>
>>
>>  <servlet>
>>   <servlet-name>JspRedirector</servlet-name>
>>   <jsp-file>/test/jspRedirector.jsp</jsp-file>
>>  </servlet>
>>
>>  <!-- Faces Servlet Mapping extension mapping -->  <servlet-mapping>
>>   <servlet-name>faces</servlet-name>
>>   <url-pattern>*.jsf</url-pattern>
>>  </servlet-mapping>
>>
>>  <servlet-mapping>
>>   <servlet-name>faces</servlet-name>
>>   <url-pattern>*.faces</url-pattern>
>>  </servlet-mapping>
>>
>>  <servlet-mapping>
>>   <servlet-name>JspRedirector</servlet-name>
>>   <url-pattern>/JspRedirector</url-pattern>
>>  </servlet-mapping>
>>
>>  <servlet-mapping>
>>   <servlet-name>jsp</servlet-name>
>>   <url-pattern>*.jsp</url-pattern>
>>  </servlet-mapping>
>>
>>  <servlet-mapping>
>>   <servlet-name>jsp</servlet-name>
>>   <url-pattern>*.jspf</url-pattern>
>>  </servlet-mapping>
>>
>>  <session-config>
>>   <session-timeout>600</session-timeout>
>>  </session-config>
>>
>>  <!-- Welcome files -->
>>  <welcome-file-list>
>>   <welcome-file>index.html</welcome-file>
>>   <welcome-file>index.jsp</welcome-file>
>>   <welcome-file>/jsf/index.jsf</welcome-file>
>>  </welcome-file-list>
>>  <error-page>
>>   <error-code>401</error-code>
>>   <location>/Http401Unauthorized</location>
>>  </error-page>
>>  <error-page>
>>   <exception-type>java.lang.Throwable</exception-type>
>>   <location>/ErrorCtrl</location>
>>  </error-page>
>>  
>>  <jsp-config>
>>   <taglib>
>>    <taglib-uri>jstl-sql-rt.tld</taglib-uri>
>>    <taglib-location>/WEB-INF/taglib/jstl-sql-rt.tld</taglib-location>
>>   </taglib>
>>   <taglib>
>>    <taglib-uri>jstl-fmt.tld</taglib-uri>
>>    <taglib-location>/WEB-INF/taglib/jstl-fmt.tld</taglib-location>
>>   </taglib>
>>   <taglib>
>>    <taglib-uri>jstl-core.tld</taglib-uri>
>>    <taglib-location>/WEB-INF/taglib/jstl-core.tld</taglib-location>
>>   </taglib>
>>  </jsp-config>
>>
>>  <security-constraint>
>>   <web-resource-collection>
>>    <web-resource-name>SSL Scheduler Pages</web-resource-name>
>>    <description />
>>    <url-pattern>/scheduler/schedulerManager.xhtml</url-pattern>
>>    <http-method>GET</http-method>
>>    <http-method>PUT</http-method>
>>    <http-method>POST</http-method>
>>   </web-resource-collection>
>>     <auth-constraint>
>>      <description />
>>      <role-name>RDSstaticdatadeveloper</role-name>
>>     </auth-constraint>
>>      <user-data-constraint>
>>       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
>>      </user-data-constraint>
>>  </security-constraint>
>>
>>  <security-constraint>
>>   <web-resource-collection>
>>    <web-resource-name>SSL Rule Pages</web-resource-name>
>>    <description />
>>    <url-pattern>/rule/ruleList.xhtml</url-pattern>
>>    <http-method>GET</http-method>
>>    <http-method>PUT</http-method>
>>    <http-method>POST</http-method>
>>   </web-resource-collection>
>>     <auth-constraint>
>>      <description />
>>      <role-name>RDSstaticdatarulesrw</role-name>
>>     </auth-constraint>
>>      <user-data-constraint>
>>       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
>>      </user-data-constraint>
>>  </security-constraint>
>>
>>  <login-config>
>>   <auth-method>CLIENT-CERT</auth-method>
>>   <realm-name>gds</realm-name>
>>  </login-config>
>>
>>  <security-role>
>>   <description>developer role - access to developer areas</description>
>>   <role-name>RDSstaticdatadeveloper</role-name>
>>  </security-role>
>>
>>  <security-role>
>>   <description>user who have permissions to maintain the rule 
>> defintions</description>
>>   <role-name>RDSstaticdatarulesrw</role-name>
>>  </security-role>
>>
>> </web-app>
>>
>> Thanks a lot ! 
>>
>> -----Original Message-----
>> From: David Delbecq [mailto:[EMAIL PROTECTED]
>> Sent: 19 April 2007 10:49
>> To: MyFaces Discussion
>> Subject: Re: Security - protect JSF pages (.xhtml) via security in web.xml 
>> -> DOES NOT WORK ?
>>
>> One of those
>> <url-pattern>/rule/ruleList.faces</url-pattern>
>> <url-pattern>/faces/rule/ruleList.xhtml</url-pattern>
>> <url-pattern>/faces/rule/*</url-pattern>
>> will most probably work better, depending on how you mapped your 
>> facelets context. If not, please provide full web.xml so we can see 
>> where problem is :)
>>
>> PS: security contraints apply to url submitted by browser, not internal 
>> forwards that may appear as a result of JSF navigation rule.
>>
>>
>> En l'instant précis du 19/04/07 10:14, Zohner, Michael s'exprimait en ces 
>> termes:
>>   
>>     
>>> Sorry, there was a small mistake:
>>>
>>> WRONG:
>>> So, when I become an "RDSstaticdatarulesrw" user, I can see the page.
>>> It has no effect.
>>>
>>> RIGHT:
>>> So, when I become ANOTHER USER than "RDSstaticdatarulesrw" user, I 
>>> can see the page.
>>> So, all that has no effect.
>>>
>>>
>>> Regards
>>> Michael
>>>
>>>
>>> -----Original Message-----
>>> From: Zohner, Michael
>>> Sent: 19 April 2007 10:10
>>> To: MyFaces Discussion
>>> Subject: Security - protect JSF pages (.xhtml) via security in 
>>> web.xml
>>> -> DOES NOT WORK ?
>>>
>>> Hi,
>>>
>>> I am trying to protect several pages in our jsf application (myFaces, 
>>> facelets, richfaces).
>>>
>>> We have a security server where our users have specific roles.
>>>
>>> Its an https application.
>>>
>>> This is in my web.xml:
>>>
>>>  <security-constraint>
>>>   <web-resource-collection>
>>>    <web-resource-name>SSL Rule Pages</web-resource-name>
>>>    <description />
>>>    <url-pattern>/rule/ruleList.xhtml</url-pattern>
>>>    <http-method>GET</http-method>
>>>    <http-method>PUT</http-method>
>>>    <http-method>POST</http-method>
>>>   </web-resource-collection>
>>>     <auth-constraint>
>>>      <description />
>>>      <role-name>RDSstaticdatarulesrw</role-name>
>>>     </auth-constraint>
>>>     <user-data-constraint>
>>>      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
>>>     </user-data-constraint>
>>>  </security-constraint>
>>>
>>> So, when I become an "RDSstaticdatarulesrw" user, I can see the page.
>>> It has no effect.
>>>
>>> When I write <url-pattern>/rule/*</url-pattern> instead of 
>>> <url-pattern>/rule/ruleList.xhtml</url-pattern>, I cannot see ANY pages.
>>> Also not the pages which are NOT in directory "rule".
>>>
>>> So, HOW can I get this working ?
>>>
>>> The best would be to protect whole dirs and single pages.
>>>
>>> Best regards
>>> Michael
>>>
>>>
>>> ________________
>>> Dresdner Bank AG
>>> Sitz/Registered Office: Frankfurt am Main, Handelsregister/Commercial
>>> Register: Amtsgericht/Local Court, Frankfurt am Main, HRB 14000 
>>> Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board:
>>> Michael Diekmann Vorstand/Board of Managing Directors: Herbert Walter 
>>> (Vorsitzender/Chairman), Andreas Georgi, Stefan Jentzsch, Wulf Meier, 
>>> Andree Moschner, Klaus Rosenfeld, Otto Steinmetz, Friedrich Woebking
>>>
>>> This e-mail is confidential and the information contained in it may 
>>> be privileged.  It should not be read, copied or used by anyone other 
>>> than the intended recipient.  If you have received it in error, 
>>> please contact the sender immediately by telephoning +44 (0)20 7623 
>>> 8000 or by return email, and delete the e-mail and do not disclose 
>>> its contents to any person.  We believe, but do not warrant, that 
>>> this e-mail and any attachments are virus free, but you must take 
>>> full responsibility for virus checking.  Please refer to 
>>> http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail 
>>> disclaimer statement and monitoring policy.
>>> ________________
>>>
>>>
>>> ________________
>>> Dresdner Bank AG
>>> Sitz/Registered Office: Frankfurt am Main, Handelsregister/Commercial
>>> Register: Amtsgericht/Local Court, Frankfurt am Main, HRB 14000 
>>> Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board:
>>> Michael Diekmann Vorstand/Board of Managing Directors: Herbert Walter 
>>> (Vorsitzender/Chairman), Andreas Georgi, Stefan Jentzsch, Wulf Meier, 
>>> Andree Moschner, Klaus Rosenfeld, Otto Steinmetz, Friedrich Woebking
>>>
>>> This e-mail is confidential and the information contained in it may be 
>>> privileged.  It should not be read, copied or used by anyone other than the 
>>> intended recipient.  If you have received it in error, please contact the 
>>> sender immediately by telephoning +44 (0)20 7623 8000 or by return email, 
>>> and delete the e-mail and do not disclose its contents to any person.  We 
>>> believe, but do not warrant, that this e-mail and any attachments are virus 
>>> free, but you must take full responsibility for virus checking.  Please 
>>> refer to http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail 
>>> disclaimer statement and monitoring policy.
>>> ________________
>>>
>>>   
>>>     
>>>       
>> ________________
>> Dresdner Bank AG
>> Sitz/Registered Office: Frankfurt am Main, Handelsregister/Commercial 
>> Register: Amtsgericht/Local Court, Frankfurt am Main, HRB 14000 
>> Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: 
>> Michael Diekmann Vorstand/Board of Managing Directors: Herbert Walter 
>> (Vorsitzender/Chairman), Andreas Georgi, Stefan Jentzsch, Wulf Meier, 
>> Andree Moschner, Klaus Rosenfeld, Otto Steinmetz, Friedrich Woebking
>>
>> This e-mail is confidential and the information contained in it may be 
>> privileged.  It should not be read, copied or used by anyone other than the 
>> intended recipient.  If you have received it in error, please contact the 
>> sender immediately by telephoning +44 (0)20 7623 8000 or by return email, 
>> and delete the e-mail and do not disclose its contents to any person.  We 
>> believe, but do not warrant, that this e-mail and any attachments are virus 
>> free, but you must take full responsibility for virus checking.  Please 
>> refer to http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail 
>> disclaimer statement and monitoring policy.
>> ________________
>>
>>   
>>     
>
>
> ________________
> Dresdner Bank AG
> Sitz/Registered Office: Frankfurt am Main, Handelsregister/Commercial 
> Register: Amtsgericht/Local Court, Frankfurt am Main, HRB 14000 
> Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: Michael 
> Diekmann 
> Vorstand/Board of Managing Directors: Herbert Walter (Vorsitzender/Chairman), 
> Andreas Georgi, Stefan Jentzsch, Wulf Meier, Andree Moschner, Klaus 
> Rosenfeld, Otto Steinmetz, Friedrich Woebking 
>
> This e-mail is confidential and the information contained in it may be 
> privileged.  It should not be read, copied or used by anyone other than the 
> intended recipient.  If you have received it in error, please contact the 
> sender immediately by telephoning +44 (0)20 7623 8000 or by return email, and 
> delete the e-mail and do not disclose its contents to any person.  We 
> believe, but do not warrant, that this e-mail and any attachments are virus 
> free, but you must take full responsibility for virus checking.  Please refer 
> to http://www.dresdnerkleinwort.com/disc/email/ and read our e-mail 
> disclaimer statement and monitoring policy.
> ________________
>
>   

Reply via email to