Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki?  Please give us your feedback at csf-support@mit.edu

Using X509 Application Certificates with CSF Security version 2

Using X509 Applicaiton Certificates with CSF Security requires that the following be done:

  • add three new beans to your application's applicationContext spring security xml,
  • add one new bean to your application's applicationContext conf xml,
  • create a new allowEntities.properties file.

Each of the above is described below.

Add the following 3 beans to your application's appicationContext spring security xml.
You many already have a filterChainProxy already defined in your security XML.  If the filterChainProxy is already defined, then replace it with the filterChainProxy given below.
The ssoX509SecurityContextPersistenceFilter and the ssoX509AuthenticationProcessingFilter are new beans.
Panel
Wiki Markup

{anchor:Using X509 Application Certificates with CSF Security version 2}
h3. Using X509 Application Certificates with CSF Security version 2
Using X509 Applicaiton Certificates with CSF Security requires that the following be done:
* add three new beans to your application's applicationContext spring security xml,
* add one new bean to your application's applicationContext conf xml,
* create a new allowEntities.properties file.

Each of the above is described below.

# Add the following 3 beans to your application's appicationContext spring security xml.
\\
\\
You many already have a *filterChainProxy* already defined in your security XML.  If the *filterChainProxy* is already defined, then replace it with the *filterChainProxy* given below.
\\
\\
The *ssoX509SecurityContextPersistenceFilter* and the *ssoX509AuthenticationProcessingFilter* are new beans.
\\
{code}
Anchor
Using X509 Application Certificates with CSF Security version 2Using X509 Application Certificates with CSF Security version 2
Code Block

    <bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">
        <security:filter-chain-map path-type="ant">
            <security:filter-chain pattern="/css/**" filters="logoutFilter" />
            <security:filter-chain pattern="/images/**" filters="logoutFilter" />
            <security:filter-chain pattern="/js/**" filters="logoutFilter" />
            <security:filter-chain pattern="/docs/**" filters="logoutFilter" />
            <security:filter-chain pattern="/**" filters="ssoX509SecurityContextPersistenceFilter,
           		logoutFilter,
           		ssoX509AuthenticationProcessingFilter,
           		basicAuthenticationProcessingFilter,
           		exceptionTranslationFilter,
           		filterSecurityInterceptor,
           		switchUserProcessingFilter"
            />
        </security:filter-chain-map>
    </bean>

    <bean id="ssoX509SecurityContextPersistenceFilter" class="edu.mit.csf.security.spring.filter.SsoX509SecurityContextPersistenceFilter"/>
    
    <bean id="ssoX509AuthenticationProcessingFilter" class="edu.mit.csf.security.spring.filter.SsoX509AuthenticationProcessingFilter">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="allowedEntities" ref="allowedEntities"/>
    </bean>
Add the following bean to your
{code}
# Add the following bean to your application's appicationContext conf xml
. Code Block
.&nbsp;&nbsp;Notice that in the first <value> line the is *<application identifier>* entry.&nbsp;&nbsp;You must replace *<application identifier>* with your application identifier.&nbsp;&nbsp;For example: if your application identifier is *addDrop*, then the <value> line would be *<value>file:${user.dir}/addDrop/allowedEntities.properties</value>*.
{code}
    <bean id="allowedEntities" class="edu.mit.csf.base.configuration.CompactApacheApplicationConfiguration" init-method="init">
        <property name="locations">
            <list>
                <value>file:${user.dir}/<application identifier>/allowedEntities.properties</value>
                <value>file:${user.home}/allowedEntities.properties</value>
            </list>
        </property>
    </bean>
create a new

{code}
# create a new allowEntities.properties file and place it in either the $\{user.dir}/<application identifier> directory for apache/tomcat servers or in the $\{user.home} for OC4J servers.