+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.ext.jdbm</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-bin.includes = META-INF/
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <version>2.1.12-SNAPSHOT</version>
- <artifactId>argeo-commons</artifactId>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.ext.jdbm</artifactId>
- <name>Commons Server JDBM Extension</name>
- <description>Add Apache Directory Server support to JDBM</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <configuration>
- <instructions>
- <Fragment-Host>jdbm</Fragment-Host>
- <Import-Package>
- org.apache.directory.server.core.partition.impl.btree.jdbm;resolution:=optional,
- org.apache.directory.server.core.schema;resolution:=optional,
- org.apache.directory.server.core.partition.impl;resolution:=optional,
- org.apache.directory.server.core.partition.impl.btree;resolution:=optional,
- org.apache.directory.shared.ldap.message;resolution:=optional,
- </Import-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.jackrabbit.webapp</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Tue Feb 22 17:15:24 CET 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
- <import resource="osgi.xml" />
- <import resource="security-filters.xml" />
-
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <property name="locations">
- <value>osgibundle:jackrabbit-webapp.properties</value>
- </property>
- </bean>
-
- <!-- The JCR sessions, optimised per web session. -->
- <bean id="scopedSessionProvider" init-method="init"
- destroy-method="destroy" class="org.argeo.jackrabbit.remote.ScopedSessionProvider"
- scope="session">
- <aop:scoped-proxy proxy-target-class="false" />
- </bean>
-
- <!-- The JCR sessions, one login per request. -->
- <bean id="openInViewSessionProvider" init-method="init"
- destroy-method="destroy" class="org.argeo.jackrabbit.remote.OpenInViewSessionProvider">
- </bean>
-
- <!-- <bean id="repositoryRegister" class="org.argeo.jcr.DefaultRepositoryRegister"
- /> -->
-
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
- xmlns:security="http://www.springframework.org/schema/security"\r
- xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
- http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
- http://www.springframework.org/schema/beans \r
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
- http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">\r
-\r
- <!-- <set id="repositories" interface="javax.jcr.Repository" -->\r
- <!-- cardinality="0..N"> -->\r
- <!-- <listener ref="repositoryRegister" bind-method="register" -->\r
- <!-- unbind-method="unregister" /> -->\r
- <!-- </set> -->\r
- <!-- <list id="repositories" interface="javax.jcr.Repository" -->\r
- <!-- cardinality="0..N"> -->\r
- <!-- <listener ref="repositoryRegister" bind-method="register" -->\r
- <!-- unbind-method="unregister" /> -->\r
- <!-- </list> -->\r
-\r
- <reference id="repositoryFactory" interface="javax.jcr.RepositoryFactory" />\r
-\r
- <reference id="authenticationManager"\r
- interface="org.springframework.security.authentication.AuthenticationManager" />\r
- <reference id="userDetailsService"\r
- interface="org.springframework.security.core.userdetails.UserDetailsService" />\r
-</beans:beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
- <bean
- class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
-
- <bean id="servletHandler"
- class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
-
- <bean id="urlMapping"
- class="org.argeo.jackrabbit.remote.JcrRemotingHandlerMapping">
- <property name="repositoryFactory" ref="repositoryFactory" />
- <property name="sessionProvider" ref="scopedSessionProvider" />
- </bean>
-
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
-
- <bean id="filterChain.davex" parent="filterChain.template">
- <sec:filter-chain-map path-type="ant">
- <sec:filter-chain pattern="/*/*/*/**"
- filters="session,x509,basic,exception,interceptor" />
- <!-- For some reason the first level listing workspaces must be public -->
- <sec:filter-chain pattern="/*/*/"
- filters="anonymous,exception,interceptorPublic" />
- </sec:filter-chain-map>
- </bean>
-
- <bean id="filterChain.private" parent="filterChain.template">
- <sec:filter-chain-map path-type="ant">
- <sec:filter-chain pattern="/**"
- filters="session,x509,basic,exception,interceptor" />
- </sec:filter-chain-map>
- </bean>
-
- <bean id="filterChain.public" parent="filterChain.template">
- <sec:filter-chain-map path-type="ant">
- <sec:filter-chain pattern="/**"
- filters="anonymous,exception,interceptorPublic" />
- </sec:filter-chain-map>
- </bean>
-
- <bean id="filterChain.template" abstract="true"
- class="org.springframework.security.util.FilterChainProxy">
- <property name="matcher">
- <bean class="org.springframework.security.util.AntUrlPathMatcher">
- <!-- Do not convert to lower case -->
- <constructor-arg value="false" />
- </bean>
- </property>
- </bean>
-
- <!-- The actual authorization checks (called last, but first here for ease
- of configuration) -->
- <bean id="interceptor" parent="filterInvocationInterceptorTemplate">
- <property name="objectDefinitionSource">
- <value>
- PATTERN_TYPE_APACHE_ANT
- /**=ROLE_USER,ROLE_ADMIN
- </value>
- </property>
- </bean>
- <bean id="interceptorPublic" parent="filterInvocationInterceptorTemplate">
- <property name="objectDefinitionSource">
- <value>
- PATTERN_TYPE_APACHE_ANT
- /**=IS_AUTHENTICATED_ANONYMOUSLY
- </value>
- </property>
- </bean>
-
- <bean id="x509"
- class="org.springframework.security.ui.preauth.x509.X509PreAuthenticatedProcessingFilter">
- <property name="authenticationManager" ref="authenticationManager" />
- <property name="principalExtractor">
- <bean
- class="org.springframework.security.ui.preauth.x509.SubjectDnX509PrincipalExtractor">
- <property name="subjectDnRegex" value="CN=(.*?)," />
- </bean>
- </property>
- </bean>
-
- <!-- Integrates the authentication information in the http sessions -->
- <bean id="session"
- class="org.springframework.security.context.HttpSessionContextIntegrationFilter">
- <property name="allowSessionCreation" value="true" />
- </bean>
-
- <!-- Processes logouts, removing both session informations and the remember-me
- cookie from the browser -->
- <!-- <bean id="logout" class="org.springframework.security.ui.logout.LogoutFilter"> -->
- <!-- <constructor-arg value="/webdav/node/main" /> -->
- <!-- <constructor-arg> -->
- <!-- <list> -->
- <!-- <bean -->
- <!-- class="org.springframework.security.ui.logout.SecurityContextLogoutHandler"
- /> -->
- <!-- </list> -->
- <!-- </constructor-arg> -->
- <!-- </bean> -->
-
- <!-- Basic authentication -->
- <bean id="basic"
- class="org.springframework.security.ui.basicauth.BasicProcessingFilter">
- <property name="authenticationManager">
- <ref bean="authenticationManager" />
- </property>
- <property name="authenticationEntryPoint">
- <ref local="basicProcessingFilterEntryPoint" />
- </property>
- </bean>
-
- <!-- Activate basic auth when needed -->
- <bean id="basicProcessingFilterEntryPoint"
- class="org.springframework.security.ui.basicauth.BasicProcessingFilterEntryPoint">
- <property name="realmName">
- <value>${argeo.server.realmName}</value>
- </property>
- </bean>
-
- <!-- If everything else failed, anonymous authentication -->
- <bean id="anonymous"
- class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter">
- <property name="key" value="${argeo.security.systemKey}" />
- <property name="userAttribute" value="anonymous,ROLE_ANONYMOUS" />
- </bean>
-
- <!-- Reacts to security related exceptions -->
- <bean id="exception"
- class="org.springframework.security.ui.ExceptionTranslationFilter">
- <property name="authenticationEntryPoint">
- <ref bean="basicProcessingFilterEntryPoint" />
- </property>
- <property name="accessDeniedHandler">
- <bean class="org.springframework.security.ui.AccessDeniedHandlerImpl">
- <!-- <property name="errorPage" value="/accessDenied.jsp" /> -->
- </bean>
- </property>
- </bean>
-
- <!-- Template for authorization checks -->
- <bean id="filterInvocationInterceptorTemplate" abstract="true"
- class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
- <property name="authenticationManager" ref="authenticationManager" />
- <property name="accessDecisionManager">
- <bean class="org.springframework.security.vote.AffirmativeBased">
- <property name="allowIfAllAbstainDecisions" value="false" />
- <property name="decisionVoters">
- <list>
- <bean class="org.springframework.security.vote.RoleVoter" />
- <bean class="org.springframework.security.vote.AuthenticatedVoter" />
- </list>
- </property>
- </bean>
- </property>
- </bean>
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- version="2.5">
-
- <display-name>Argeo Jackrabbit Webapp</display-name>
-
- <!-- We don't want the session-scoped JCR sessions to wait too long before
- being logged out. -->
- <session-config>
- <session-timeout>5</session-timeout>
- </session-config>
-
- <!-- General -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
-
- <listener>
- <display-name>Spring Context</display-name>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextClass</param-name>
- <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
- </context-param>
-
- <!-- Remoting -->
- <servlet>
- <servlet-name>remoting</servlet-name>
- <servlet-class>org.argeo.jackrabbit.remote.ExtendedDispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextClass</param-name>
- <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
- </init-param>
- <init-param>
- <param-name>dispatchOptionsRequest</param-name>
- <param-value>true</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>remoting</servlet-name>
- <url-pattern>/jcr/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>remoting</servlet-name>
- <url-pattern>/pub/*</url-pattern>
- </servlet-mapping>
-
- <!-- WEBDAV servlet -->
- <servlet>
- <servlet-name>webdav</servlet-name>
- <servlet-class>org.argeo.jackrabbit.remote.ExtendedDispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextClass</param-name>
- <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
- </init-param>
- <init-param>
- <param-name>dispatchOptionsRequest</param-name>
- <param-value>true</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>webdav</servlet-name>
- <url-pattern>/files/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>webdav</servlet-name>
- <url-pattern>/public/*</url-pattern>
- </servlet-mapping>
-
- <!-- Security -->
- <filter>
- <filter-name>filterChain.davex</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>filterChain.davex</filter-name>
- <url-pattern>/jcr/*</url-pattern>
- </filter-mapping>
-
- <filter>
- <filter-name>filterChain.private</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>filterChain.private</filter-name>
- <url-pattern>/files/*</url-pattern>
- </filter-mapping>
-
- <filter>
- <filter-name>filterChain.public</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>filterChain.public</filter-name>
- <url-pattern>/pub/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>filterChain.public</filter-name>
- <url-pattern>/public/*</url-pattern>
- </filter-mapping>
-
-</web-app>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<!--
-<!DOCTYPE config [
- <!ELEMENT config (iomanager , propertymanager, (collection | noncollection)? , filter?, mimetypeproperties?) >
-
- <!ELEMENT iomanager (class, iohandler*) >
- <!ELEMENT iohandler (class) >
-
- <!ELEMENT propertymanager (class, propertyhandler*) >
- <!ELEMENT propertyhandler (class) >
-
- <!ELEMENT collection (nodetypes) >
- <!ELEMENT noncollection (nodetypes) >
-
- <!ELEMENT filter (class, namespaces?, nodetypes?) >
-
- <!ELEMENT class >
- <!ATTLIST class
- name CDATA #REQUIRED
- >
- <!ELEMENT namespaces (prefix | uri)* >
- <!ELEMENT prefix (CDATA) >
- <!ELEMENT uri (CDATA) >
-
- <!ELEMENT nodetypes (nodetype)* >
- <!ELEMENT nodetype (CDATA) >
-
- <!ELEMENT mimetypeproperties (mimemapping*, defaultmimetype) >
-
- <!ELEMENT mimemapping >
- <!ATTLIST mimemapping
- extension CDATA #REQUIRED
- mimetype CDATA #REQUIRED
- >
-
- <!ELEMENT defaultmimetype (CDATA) >
-]>
--->
-
-<config>
- <!--
- Defines the IOManager implementation that is responsible for passing
- import/export request to the individual IO-handlers.
- -->
- <iomanager>
- <!-- class element defines the manager to be used. The specified class
- must implement the IOManager interface.
- Note, that the handlers are being added and called in the order
- they appear in the configuration.
- -->
- <class name="org.apache.jackrabbit.server.io.IOManagerImpl" />
- <iohandler>
- <class name="org.apache.jackrabbit.server.io.VersionHandler" />
- </iohandler>
- <iohandler>
- <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
- </iohandler>
-<!-- <iohandler> -->
-<!-- <class name="org.apache.jackrabbit.server.io.ZipHandler" /> -->
-<!-- </iohandler> -->
-<!-- <iohandler> -->
-<!-- <class name="org.apache.jackrabbit.server.io.XmlHandler" /> -->
-<!-- </iohandler> -->
- <iohandler>
- <class name="org.apache.jackrabbit.server.io.DirListingExportHandler" />
- </iohandler>
- <iohandler>
- <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
- </iohandler>
- </iomanager>
- <!--
- Example config for iomanager that populates its list of handlers with
- default values. Therefore the 'iohandler' elements are omited.
- -->
- <!--
- <iomanager>
- <class name="org.apache.jackrabbit.server.io.DefaultIOManager" />
- </iomanager>
- -->
- <!--
- Defines the PropertyManager implementation that is responsible for export
- and import of resource properties.
- -->
- <propertymanager>
- <!-- class element defines the manager to be used. The specified class
- must implement the PropertyManager interface.
- Note, that the handlers are being added and called in the order
- they appear in the configuration.
- -->
- <class name="org.apache.jackrabbit.server.io.PropertyManagerImpl" />
- <propertyhandler>
- <class name="org.apache.jackrabbit.server.io.VersionHandler" />
- </propertyhandler>
- <propertyhandler>
- <class name="org.apache.jackrabbit.server.io.VersionHistoryHandler" />
- </propertyhandler>
-<!-- <propertyhandler> -->
-<!-- <class name="org.apache.jackrabbit.server.io.ZipHandler" /> -->
-<!-- </propertyhandler> -->
-<!-- <propertyhandler> -->
-<!-- <class name="org.apache.jackrabbit.server.io.XmlHandler" /> -->
-<!-- </propertyhandler> -->
- <propertyhandler>
- <class name="org.apache.jackrabbit.server.io.DefaultHandler" />
- </propertyhandler>
- </propertymanager>
- <!--
- Define nodetypes, that should never by displayed as 'collection'
- -->
- <noncollection>
- <nodetypes>
- <nodetype>nt:file</nodetype>
- <nodetype>nt:resource</nodetype>
- </nodetypes>
- </noncollection>
- <!--
- Example: Defines nodetypes, that should always be displayed as 'collection'.
- -->
- <!--
- <collection>
- <nodetypes>
- <nodetype>nt:folder</nodetype>
- <nodetype>rep:root</nodetype>
- </nodetypes>
- </collection>
- -->
- <!--
- Filter that allows to prevent certain items from being displayed.
- Please note, that this has an effect on PROPFIND calls only and does not
- provide limited access to those items matching any of the filters.
-
- However specifying a filter may cause problems with PUT or MKCOL if the
- resource to be created is being filtered out, thus resulting in inconsistent
- responses (e.g. PUT followed by PROPFIND on parent).
- -->
- <filter>
- <!-- class element defines the resource filter to be used. The specified class
- must implement the ItemFilter interface -->
- <class name="org.apache.jackrabbit.webdav.simple.DefaultItemFilter" />
- <!--
- Nodetype names to be used to filter child nodes.
- A child node can be filtered if the declaring nodetype of its definition
- is one of the nodetype names specified in the nodetypes Element.
- E.g. defining 'rep:root' as filtered nodetype whould result in jcr:system
- being hidden but no other child node of the root node, since those
- are defined by the nodetype nt:unstructered.
- -->
- <!--
- <nodetypes>
- <nodetype>rep:root</nodetype>
- </nodetypes>
- -->
- <!--
- Namespace prefixes or uris. Items having a name that matches any of the
- entries will be filtered.
- -->
- <namespaces>
- <prefix>rep</prefix>
- <prefix>jcr</prefix>
- <!--
- <uri>internal</uri>
- <uri>http://www.jcp.org/jcr/1.0</uri>
- -->
- </namespaces>
- </filter>
-
- <!--
- Optional 'mimetypeproperties' element.
- It defines additional or replaces existing mappings for the MimeResolver
- instance created by the ResourceConfig.
- The default mappings are defined in org.apache.jackrabbit.server.io.mimetypes.properties.
- If the default mime type defined by MimeResolver is 'application/octet-stream'.
- -->
- <!--
- <mimetypeproperties>
- <mimemapping extension="rtf" mimetype="application/rtf" />
- <mimemapping extension="ott" mimetype="application/vnd.oasis.opendocument.text-template" />
- <defaultmimetype>text/html</defaultmimetype>
- </mimetypeproperties>
- -->
-</config>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
- <bean
- class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
-
- <bean id="servletHandler"
- class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />
-
- <bean id="urlMapping" class="org.argeo.jackrabbit.remote.SimpleWebdavHandlerMapping">
- <property name="configuration" value="/WEB-INF/webdav-config.xml" />
- <property name="repositoryFactory" ref="repositoryFactory" />
- <property name="sessionProvider" ref="openInViewSessionProvider" />
- </bean>
-
-</beans>
\ No newline at end of file
+++ /dev/null
-bin.includes = META-INF/
+++ /dev/null
-argeo.security.systemKey=argeo
-argeo.server.realmName=Argeo
-argeo.jcr.webapp.rememberMeValidity=3600
\ No newline at end of file
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <version>2.1.12-SNAPSHOT</version>
- <artifactId>argeo-commons</artifactId>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.jackrabbit.webapp</artifactId>
- <name>Commons Server Jackrabbit Webapp</name>
- <description>JCR remoting, WebDav</description>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <configuration>
- <instructions>
- <Web-ContextPath>data</Web-ContextPath>
- <!-- Import-Package needs to be specified explicitly since BND doesn't
- scane WEB-INF -->
- <Import-Package>
- *,
- javax.jcr,
- javax.servlet,
- javax.servlet.http,
- javax.servlet.resources,
- org.aopalliance.aop,
- org.argeo.jackrabbit.remote,
- org.argeo.jcr,
- org.argeo.jcr.mvc,
- org.springframework.aop,
- org.springframework.aop.framework,
- org.springframework.aop.scope,
- org.springframework.beans.factory.config,
- org.springframework.osgi.web.context.support,
- org.springframework.security,
- org.springframework.security.providers.anonymous,
- org.springframework.security.ui,
- org.springframework.security.ui.webapp,
- org.springframework.security.ui.preauth.x509,
- org.springframework.security.userdetails,
- org.springframework.web.context,
- org.springframework.web.filter,
- org.springframework.web.servlet,
- org.springframework.web.servlet.handler,
- org.springframework.web.servlet.view,
- org.springframework.security.util,
- org.springframework.security.context,
- org.springframework.security.ui.basicauth,
- org.springframework.security.intercept.web,
- org.springframework.security.vote,
- org.springframework.security.ui.logout,
- org.apache.jackrabbit.server,
- </Import-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src" />
- <classpathentry kind="con"
- path="org.eclipse.pde.core.requiredPlugins" />
- <classpathentry kind="con"
- path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" />
- <classpathentry kind="output" path="bin" />
-</classpath>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.security.mvc</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Tue Sep 15 11:35:07 CEST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.source=1.5
+++ /dev/null
-#Tue Sep 15 11:35:01 CEST 2009
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-includeModules=false
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-skipCompilerPlugin=true
-version=1
+++ /dev/null
-Import-Package: javax.servlet,*
+++ /dev/null
-additional.bundles = org.springframework.beans
-source.. = src/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <artifactId>argeo-commons</artifactId>
- <version>2.1.12-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.security.mvc</artifactId>
- <name>Commons Security MVC</name>
- <dependencies>
- <!-- Argeo Server -->
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.server.core</artifactId>
- <version>2.1.12-SNAPSHOT</version>
- </dependency>
-
- <!-- Argeo Security -->
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.security.core</artifactId>
- <version>2.1.12-SNAPSHOT</version>
- </dependency>
-
- <!-- Spring -->
-<!-- <dependency> -->
-<!-- <groupId>org.argeo.tp</groupId> -->
-<!-- <artifactId>org.springframework.web.servlet</artifactId> -->
-<!-- </dependency> -->
-<!-- <dependency> -->
-<!-- <groupId>org.argeo.tp</groupId> -->
-<!-- <artifactId>org.springframework.aop</artifactId> -->
-<!-- </dependency> -->
-
- <!-- J2EE -->
-<!-- <dependency> -->
-<!-- <groupId>org.argeo.tp</groupId> -->
-<!-- <artifactId>javax.servlet</artifactId> -->
-<!-- </dependency> -->
-
- </dependencies>
-</project>
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (C) 2007-2012 Mathieu Baudier
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.security.mvc;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices;
-
-public class ArgeoRememberMeServices extends TokenBasedRememberMeServices {
- public final static String DEFAULT_COOKIE_NAME = "ARGEO_SECURITY";
-
- public ArgeoRememberMeServices() {
- setCookieName(DEFAULT_COOKIE_NAME);
- }
-
- /**
- * Sets a "cancel cookie" (with maxAge = 0) on the response to disable
- * persistent logins.
- *
- * @param request
- * @param response
- */
- protected void cancelCookie(HttpServletRequest request,
- HttpServletResponse response) {
- Cookie cookie = new Cookie(getCookieName(), null);
- cookie.setMaxAge(0);
- cookie.setPath("/");
-
- response.addCookie(cookie);
- }
-
- /**
- * Sets the cookie on the response
- *
- * @param tokens
- * the tokens which will be encoded to make the cookie value.
- * @param maxAge
- * the value passed to {@link Cookie#setMaxAge(int)}
- * @param request
- * the request
- * @param response
- * the response to add the cookie to.
- */
- protected void setCookie(String[] tokens, int maxAge,
- HttpServletRequest request, HttpServletResponse response) {
- String cookieValue = encodeCookie(tokens);
- Cookie cookie = new Cookie(getCookieName(), cookieValue);
- cookie.setMaxAge(maxAge);
- cookie.setPath("/");
- response.addCookie(cookie);
- }
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007-2012 Mathieu Baudier
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.security.mvc;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.argeo.security.UserAdminService;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-/** Add the current argeo user as an attribute to the request. */
-public class ArgeoUserInterceptor extends HandlerInterceptorAdapter {
- private UserAdminService securityService;
-
- @Override
- public boolean preHandle(HttpServletRequest request,
- HttpServletResponse response, Object handler) throws Exception {
- //request.setAttribute("argeoUser", securityService.getCurrentUser());
- return super.preHandle(request, response, handler);
- }
-
- public void setSecurityService(UserAdminService securityService) {
- this.securityService = securityService;
- }
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007-2012 Mathieu Baudier
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.security.mvc;
-
-import org.argeo.server.mvc.MvcConstants;
-import org.springframework.stereotype.Controller;
-
-@Controller
-public class UsersRolesController implements MvcConstants {
-// private ArgeoSecurityService securityService;
-// private Deserializer userDeserializer = null;
-
- /* USER */
-
-// @RequestMapping("/getCredentials.*")
-// @ModelAttribute("user")
-// public ArgeoUser getCredentials() {
-// ArgeoUser argeoUser = securityService.getCurrentUser();
-// if (argeoUser == null)
-// return new SimpleArgeoUser();
-// else
-// return argeoUser;
-// }
-//
-// @RequestMapping("/getUsersList.*")
-// @ModelAttribute("users")
-// public Set<ArgeoUser> getUsersList() {
-// return securityService.listUsers();
-// }
-//
-// @RequestMapping("/userExists.*")
-// public BooleanAnswer userExists(@RequestParam("username") String username) {
-// return new BooleanAnswer(securityService.userExists(username));
-// }
-//
-// @RequestMapping("/createUser.*")
-// @ModelAttribute("user")
-// public ArgeoUser createUser(Reader reader) {
-// ArgeoUser user = userDeserializer.deserialize(reader,
-// SimpleArgeoUser.class);
-// securityService.newUser(user);
-// return securityService.getUser(user.getUsername());
-// }
-//
-// @RequestMapping("/updateUser.*")
-// @ModelAttribute("user")
-// public ArgeoUser updateUser(Reader reader) {
-// ArgeoUser user = userDeserializer.deserialize(reader,
-// SimpleArgeoUser.class);
-// securityService.updateUser(user);
-// return securityService.getUser(user.getUsername());
-// }
-//
-// @RequestMapping("/updateUserSelf.*")
-// @ModelAttribute("user")
-// /** Will only update the user natures.*/
-// public ArgeoUser updateUserSelf(Reader reader) {
-// ArgeoUser user = securityService.getCurrentUser();
-// ArgeoUser userForNatures = userDeserializer.deserialize(reader,
-// SimpleArgeoUser.class);
-// user.updateUserNatures(userForNatures.getUserNatures());
-// securityService.updateUser(user);
-// return securityService.getUser(user.getUsername());
-// }
-//
-// @RequestMapping("/deleteUser.*")
-// public ServerAnswer deleteUser(@RequestParam("username") String username) {
-// securityService.deleteUser(username);
-// return ServerAnswer.ok("User " + username + " deleted");
-// }
-//
-// @RequestMapping("/getUserDetails.*")
-// @ModelAttribute("user")
-// public ArgeoUser getUserDetails(@RequestParam("username") String username) {
-// return securityService.getUser(username);
-// }
-
- /* ROLE */
-// @RequestMapping("/getRolesList.*")
-// @ModelAttribute("roles")
-// public Set<String> getEditableRolesList() {
-// return securityService.listEditableRoles();
-// }
-//
-// @RequestMapping("/createRole.*")
-// public ServerAnswer createRole(@RequestParam("role") String role) {
-// securityService.newRole(role);
-// return ServerAnswer.ok("Role " + role + " created");
-// }
-//
-// @RequestMapping("/deleteRole.*")
-// public ServerAnswer deleteRole(@RequestParam("role") String role) {
-// securityService.deleteRole(role);
-// return ServerAnswer.ok("Role " + role + " deleted");
-// }
-//
-// @RequestMapping("/updateUserPassword.*")
-// public ServerAnswer updateUserPassword(
-// @RequestParam("username") String username,
-// @RequestParam("password") String password) {
-// securityService.updateUserPassword(username, password);
-// return ServerAnswer.ok("Password updated for user " + username);
-// }
-//
-// @RequestMapping("/updatePassword.*")
-// public ServerAnswer updatePassword(
-// @RequestParam("oldPassword") String oldPassword,
-// @RequestParam("password") String password) {
-// securityService.updateCurrentUserPassword(oldPassword, password);
-// return ServerAnswer.ok("Password updated");
-// }
-//
-// public void setUserDeserializer(Deserializer userDeserializer) {
-// this.userDeserializer = userDeserializer;
-// }
-//
-// public void setSecurityService(ArgeoSecurityService securityService) {
-// this.securityService = securityService;
-// }
-
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.server.ads.server</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Sun Jan 16 09:58:38 CET 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+++ /dev/null
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
-
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <property name="locations">
- <value>osgibundle:ads.properties</value>
- </property>
- </bean>
-
- <bean class="org.argeo.server.ads.AdsContainer">
- <property name="workingDirectory" value="${osgi.instance.area}/apacheds" />
-<!-- <property name="deleteWorkingDirOnExit" value="true" /> -->
- <property name="configuration" ref="configuration" />
- <property name="environment" ref="environment" />
- <property name="ldifs">
- <list>
- <value>${argeo.ads.init.ldif}</value>
- </list>
- </property>
- </bean>
-
- <bean id="environment"
- class="org.springframework.beans.factory.config.PropertiesFactoryBean">
- <property name="properties">
- <props>
- <prop key="java.naming.security.authentication">simple</prop>
- <prop key="java.naming.security.principal">${argeo.ldap.manager.userdn}</prop>
- <prop key="java.naming.security.credentials">${argeo.ldap.manager.password}</prop>
- <!--<prop key="kdc.entryBaseDn">ou=users,dc=example,dc=com</prop> -->
- <!--<prop key="kdc.java.naming.security.credentials">secret</prop> -->
- <!-- <prop key="changepw.entryBaseDn">ou=users,dc=example,dc=com</prop> -->
- <!-- <prop key="changepw.java.naming.security.credentials">secret</prop> -->
- <!-- Set this key to a space delimited set of attributeType descriptions
- and their OID's if you want an attributeType to be handled as binary content.
- The server will use the schema to derive the set of attributeTypes to treat
- as binary. The union if the values you provide here will be taken as the
- set of binaries. Note to be consistent you must add both the OID and all
- the names an attributeType can have. -->
- <!-- <prop key="java.naming.ldap.attributes.binary"></prop> -->
- </props>
- </property>
- </bean>
-
-
-</beans>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
- "http://www.springframework.org/dtd/spring-beans.dtd">
-
-<beans>
- <bean id="configuration"
- class="org.apache.directory.server.configuration.MutableServerStartupConfiguration">
- <property name="workingDirectory" value="example.com" />
-
- <!--
- Uncomment below to have the server load entries on startup!
- -->
- <!--
- ldifDirectory property can point to a relative file, directory or
- -->
- <!--
- can point to an absolute path to either using the URL path
- -->
- <!--
- notation: i.e. file:///Users/jack/apacheds/ldifs
- -->
-
- <!--
- Entries will optionally be filtered using LdifLoadFilters in the
- -->
- <!--
- order specified. The included Krb5KdcEntryFilter will filter
- -->
- <!--
- kerberos principals creating keys for them using their
- -->
- <!--
- userPassword attribute if present.
- -->
-
- <!--
- <property name="ldifDirectory">
- <value>${argeo.ads.init.ldif}</value>
- </property> -->
-
- <!--
- <property name="ldifFilters"> <list> <bean
- class="org.apache.directory.server.protocol.shared.store.Krb5KdcEntryFilter"
- /> </list> </property>
- -->
-
-
- <!--
- the number of milliseconds before issuing a synch (flush to disk)
- -->
- <!--
- which writes out dirty pages back to disk. To turn off synchs all
- -->
- <!--
- together simply set this value to <= 0. Make sure you turn on
- -->
- <!--
- synchOnWrite for all partitions if you do choose to do this or else
- -->
- <!--
- writes may never persist to disk.
- -->
- <property name="synchPeriodMillis" value="15000" />
-
- <!--
- limits searches by non-admin users to a max time of 15000
- -->
- <!--
- milliseconds and has a default value of 10000
- -->
- <property name="maxTimeLimit" value="15000" />
- <!--
- limits searches to max size of 1000 entries: default value is 100
- -->
- <property name="maxSizeLimit" value="1000" />
- <!--
- maximum number of threads used by mina is set to 8: default is 4
- -->
- <property name="maxThreads" value="8" />
-
- <property name="allowAnonymousAccess" value="true" />
- <property name="accessControlEnabled" value="false" />
- <property name="enableNtp" value="false" />
- <property name="enableKerberos" value="false" />
- <property name="enableChangePassword" value="false" />
-
- <!--
- It's more efficient to keep this feature turned off but you may not
- like having the creatorsName and modifiersName contain OIDs instead
- of short attributeType names instead. So if you want the creatorsName
- to change from the normalized form which is the internal
- representation of '0.9.2342.19200300.100.1.1=admin,2.5.4.11=system'
-
- to a more human readabile form like: 'uid=admin,ou=system' then set
- this property to true.
- -->
- <property name="denormalizeOpAttrsEnabled" value="false" />
-
- <property name="ldapPort" value="${argeo.ldap.port}" />
-
- <property name="systemPartitionConfiguration" ref="systemPartitionConfiguration" />
-
- <property name="contextPartitionConfigurations">
- <set>
- <ref bean="examplePartitionConfiguration" />
- </set>
- </property>
- <property name="bootstrapSchemas">
- <set>
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.AutofsSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.CorbaSchema" />
- <bean class="org.apache.directory.server.core.schema.bootstrap.CoreSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.CosineSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.ApacheSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.CollectiveSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.InetorgpersonSchema" />
- <bean class="org.apache.directory.server.core.schema.bootstrap.JavaSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.Krb5kdcSchema" />
- <bean class="org.apache.directory.server.core.schema.bootstrap.NisSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.SystemSchema" />
- <bean
- class="org.apache.directory.server.core.schema.bootstrap.ApachednsSchema" />
- </set>
- </property>
-
- <property name="extendedOperationHandlers">
- <list>
- <bean
- class="org.apache.directory.server.ldap.support.extended.GracefulShutdownHandler" />
- <bean
- class="org.apache.directory.server.ldap.support.extended.LaunchDiagnosticUiHandler" />
- </list>
- </property>
-
- <property name="interceptorConfigurations">
- <list>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="normalizationService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.normalization.NormalizationService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="authenticationService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.authn.AuthenticationService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="referralService" />
- <property name="interceptor">
- <bean class="org.apache.directory.server.core.referral.ReferralService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="authorizationService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.authz.AuthorizationService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="defaultAuthorizationService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.authz.DefaultAuthorizationService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="exceptionService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.exception.ExceptionService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="schemaService" />
- <property name="interceptor">
- <bean class="org.apache.directory.server.core.schema.SchemaService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="subentryService" />
- <property name="interceptor">
- <bean class="org.apache.directory.server.core.subtree.SubentryService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="operationalAttributeService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.operational.OperationalAttributeService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="collectiveAttributeService" />
- <property name="interceptor">
- <bean
- class="org.apache.directory.server.core.collective.CollectiveAttributeService" />
- </property>
- </bean>
- <bean
- class="org.apache.directory.server.core.configuration.MutableInterceptorConfiguration">
- <property name="name" value="eventService" />
- <property name="interceptor">
- <bean class="org.apache.directory.server.core.event.EventService" />
- </property>
- </bean>
- </list>
- </property>
- </bean>
-
- <!--
- use the following partitionConfiguration to override defaults for
- -->
- <!--
- the system partition
- -->
- <bean id="systemPartitionConfiguration"
- class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">
- <property name="name" value="system" />
- <property name="cacheSize" value="100" />
- <property name="suffix" value="ou=system" />
-
- <!--
- the optimizer is enabled by default but may not always be what
- -->
- <!--
- you want if your queries are really simple
- -->
- <property name="optimizerEnabled" value="true" />
-
- <!--
- Synchronization on writes does not wait for synch operations to flush
- dirty pages. Writes persist immediately to disk at a cost to
- performance with increased data integrity. Otherwise the periodic
- synch operation will flush dirty pages using the synchPeriodMillis
- parameter in the main configuration.
- -->
- <property name="synchOnWrite" value="true" />
- <property name="indexedAttributes">
- <set>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="ou" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="uid" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="objectClass" />
- <property name="cacheSize" value="100" />
- </bean>
- </set>
- </property>
- <property name="contextEntry">
- <value><![CDATA[
- objectClass: top
- objectClass: organizationalUnit
- objectClass:extensibleObject
- ou: system
- ]]></value>
- </property>
- </bean>
-
-
- <bean id="examplePartitionConfiguration"
- class="org.apache.directory.server.core.partition.impl.btree.MutableBTreePartitionConfiguration">
- <property name="name" value="example" />
- <property name="cacheSize" value="100" />
- <property name="suffix" value="${argeo.ldap.rootdn}" />
-
- <!--
- the optimizer is enabled by default but may not always be what
- -->
- <!--
- you want if your queries are really simple
- -->
- <property name="optimizerEnabled" value="true" />
-
- <!--
- Synchronization on writes does not wait for synch operations to flush
- dirty pages. Writes persist immediately to disk at a cost to
- performance with increased data integrity. Otherwise the periodic
- synch operation will flush dirty pages using the synchPeriodMillis
- parameter in the main configuration.
- -->
- <property name="synchOnWrite" value="true" />
- <property name="indexedAttributes">
- <set>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="dc" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="ou" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="krb5PrincipalName" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="uid" />
- <property name="cacheSize" value="100" />
- </bean>
- <bean
- class="org.apache.directory.server.core.partition.impl.btree.MutableIndexConfiguration">
- <property name="attributeId" value="objectClass" />
- <property name="cacheSize" value="100" />
- </bean>
- </set>
- </property>
- <property name="contextEntry">
- <value><![CDATA[
- objectClass: top
- objectClass: domain
- objectClass: extensibleObject
- dc: example
- ]]></value>
- </property>
- </bean>
-
- <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
- <property name="customEditors">
- <map>
- <entry key="javax.naming.directory.Attributes">
- <bean
- class="org.apache.directory.server.core.configuration.AttributesPropertyEditor" />
- </entry>
- </map>
- </property>
- </bean>
-</beans>
\ No newline at end of file
+++ /dev/null
-argeo.ldap.rootdn=dc=demo,dc=example,dc=org
-argeo.ldap.port=10389
-argeo.ldap.manager.userdn=uid=admin,ou=system
-argeo.ldap.manager.password=secret
-argeo.ads.init.ldif=osgibundle:init.ldif
\ No newline at end of file
+++ /dev/null
-Spring-Context: META-INF/spring/*.xml;create-asynchronously:=false
-Import-Package: javax.naming.directory,\
-jdbm,\
-org.apache.directory.server.configuration,\
-org.apache.directory.server.core.authn,\
-org.apache.directory.server.core.authz,\
-org.apache.directory.server.core.collective,\
-org.apache.directory.server.core.configuration,\
-org.apache.directory.server.core.event,\
-org.apache.directory.server.core.exception,\
-org.apache.directory.server.core.normalization,\
-org.apache.directory.server.core.operational,\
-org.apache.directory.server.core.partition.impl.btree,\
-org.apache.directory.server.core.referral,\
-org.apache.directory.server.core.schema,\
-org.apache.directory.server.core.schema.bootstrap,\
-org.apache.directory.server.core.subtree,\
-org.apache.directory.server.jndi,\
-org.apache.directory.server.ldap.support.extended,\
-org.apache.directory.shared.asn1.codec,\
-org.argeo.server.ads,\
-org.springframework.beans.factory.config,\
-*
\ No newline at end of file
+++ /dev/null
-bin.includes = META-INF/
+++ /dev/null
-dn: dc=demo,dc=example,dc=org
-objectClass: domain
-objectClass: extensibleObject
-objectClass: top
-dc: demo
-
-dn: ou=Roles,dc=demo,dc=example,dc=org
-objectClass: organizationalUnit
-objectClass: top
-ou: Roles
-
-dn: ou=People,dc=demo,dc=example,dc=org
-objectClass: organizationalUnit
-objectClass: top
-ou: People
-
-dn: uid=demo,ou=People,dc=demo,dc=example,dc=org
-objectClass: organizationalPerson
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: top
-cn: demo User
-description: Demo user
-givenname: Demo
-mail: demo@localhost
-sn: User
-uid: demo
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: uid=root,ou=People,dc=demo,dc=example,dc=org
-objectClass: person
-objectClass: inetOrgPerson
-objectClass: organizationalPerson
-objectClass: top
-cn: demo User
-description: Superuser
-givenname: Root
-mail: root@localhost
-sn: Root
-uid: root
-userpassword:: e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9
-
-dn: cn=admin,ou=Roles,dc=demo,dc=example,dc=org
-objectClass: groupOfNames
-objectClass: top
-cn: admin
-member: uid=root,ou=People,dc=demo,dc=example,dc=org
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <version>2.1.12-SNAPSHOT</version>
- <artifactId>argeo-commons</artifactId>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.server.ads.server</artifactId>
- <name>Commons Server Default ADS LDAP Server</name>
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src" />
- <classpathentry kind="con"
- path="org.eclipse.pde.core.requiredPlugins" />
- <classpathentry kind="con"
- path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" />
- <classpathentry kind="output" path="bin" />
-</classpath>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.server.ads</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-additional.bundles = org.apache.directory.server.core
-source.. = src/
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <artifactId>argeo-commons</artifactId>
- <version>2.1.12-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.server.ads</artifactId>
- <name>Commons Server Apache Directory Server</name>
- <dependencies>
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.util</artifactId>
- <version>2.1.12-SNAPSHOT</version>
- </dependency>
-
- <!-- Apache DS -->
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>org.apache.directory.server.jndi</artifactId>
- <exclusions>
- <!--
- Workaround for a weird issue where the underlying version from
- slf4j get taken instead of the one we want
- -->
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>com.springsource.slf4j.api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Apache Commons -->
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>org.apache.commons.io</artifactId>
- </dependency>
-
- <!-- Spring -->
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>org.springframework.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>org.springframework.beans</artifactId>
- </dependency>
-
- <!-- Logging -->
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>slf4j.org.apache.commons.logging</artifactId>
- </dependency>
- <dependency>
- <groupId>org.argeo.tp</groupId>
- <artifactId>slf4j.api</artifactId>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.server.ads;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.naming.directory.InitialDirContext;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.directory.server.configuration.MutableServerStartupConfiguration;
-import org.apache.directory.server.core.configuration.ShutdownConfiguration;
-import org.apache.directory.server.jndi.ServerContextFactory;
-import org.argeo.ArgeoException;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.core.io.Resource;
-import org.springframework.util.Assert;
-
-/** Wraps an Apache Directory Server instance. */
-@SuppressWarnings("restriction")
-public class AdsContainer implements InitializingBean, DisposableBean {
- private final static Log log = LogFactory.getLog(AdsContainer.class);
-
- private MutableServerStartupConfiguration configuration;
- private Properties environment = null;
- private File workingDirectory = new File(
- System.getProperty("java.io.tmpdir") + File.separator
- + "argeo-apacheDirectoryServer");
- private Boolean deleteWorkingDirOnExit = false;
-
- // LDIF
- private List<Resource> ldifs = new ArrayList<Resource>();
- private List<String> ignoredLdifAttributes = new ArrayList<String>();
- /** default is 'demo' */
- private String ldifPassword = "e1NIQX1pZVNWNTVRYytlUU9hWURSU2hhL0Fqek5USkU9";
- private String ldifPasswordAttribute = "userPassword";
- private File ldifDirectory;
-
- @SuppressWarnings("unchecked")
- public void afterPropertiesSet() throws Exception {
-
- log.info("Starting directory server with id '"
- + configuration.getInstanceId() + "' in directory "
- + workingDirectory.getAbsolutePath());
-
- if (deleteWorkingDirOnExit && workingDirectory.exists()) {
- log.warn("Found existing directory " + workingDirectory
- + " deleting it...");
- FileUtils.deleteDirectory(workingDirectory);
- }
- configuration.setWorkingDirectory(workingDirectory);
- workingDirectory.mkdirs();
-
- if (ldifDirectory != null)
- configuration.setLdifDirectory(ldifDirectory);
- else
- configuration.setLdifDirectory(new File(workingDirectory
- .getAbsolutePath() + File.separator + "ldif"));
-
- if (ignoredLdifAttributes.size() == 0) {
- ignoredLdifAttributes.add("entryUUID");
- ignoredLdifAttributes.add("structuralObjectClass");
- ignoredLdifAttributes.add("creatorsName");
- ignoredLdifAttributes.add("createTimestamp");
- ignoredLdifAttributes.add("entryCSN");
- ignoredLdifAttributes.add("modifiersName");
- ignoredLdifAttributes.add("modifyTimestamp");
- }
-
- // Process provided LDIF files
- if (ldifs.size() > 0)
- configuration.getLdifDirectory().mkdirs();
- for (Resource ldif : ldifs) {
- File targetFile = new File(configuration.getLdifDirectory()
- .getAbsolutePath()
- + File.separator
- + ldif.getFilename().replace(':', '_'));
- processLdif(ldif, targetFile);
- }
-
- Properties env = new Properties();
- env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
- ServerContextFactory.class.getName());
- Assert.notNull(environment);
- env.putAll(environment);
- env.putAll(configuration.toJndiEnvironment());
-
- try {
- new InitialDirContext(env);
- } catch (NamingException e) {
- throw new ArgeoException("Failed to start Apache Directory server",
- e);
- }
- }
-
- /**
- * Processes an LDIF resource, filtering out attributes that cannot be
- * imported in ADS and forcing a password.
- */
- protected void processLdif(Resource ldif, File targetFile) {
- BufferedReader reader = null;
- Writer writer = null;
- try {
- reader = new BufferedReader(new InputStreamReader(
- ldif.getInputStream()));
- writer = new FileWriter(targetFile);
- String line = null;
- lines: while ((line = reader.readLine()) != null) {
- // comment and empty lines
- if (line.trim().equals("") || line.startsWith("#")) {
- writer.write(line);
- writer.write('\n');
- continue lines;
- }
-
- String[] tokens = line.split(":");
- String attribute = null;
- if (tokens != null && tokens.length > 1) {
- attribute = tokens[0].trim();
- if (ignoredLdifAttributes.contains(attribute))
- continue lines;// ignore
-
- if (attribute.equals("bdb_db_open")) {
- log.warn("Ignored OpenLDAP output\n" + line);
- continue lines;
- }
-
- if (ldifPassword != null
- && attribute.equals(ldifPasswordAttribute)) {
- line = ldifPasswordAttribute + ":: " + ldifPassword;
- }
-
- writer.write(line);
- writer.write('\n');
- } else {
- log.warn("Ignored LDIF line\n" + line);
- }
- }
- if (log.isDebugEnabled())
- log.debug("Processed " + ldif + " to LDIF directory "
- + configuration.getLdifDirectory());
- } catch (IOException e) {
- throw new ArgeoException("Cannot process LDIF " + ldif, e);
- } finally {
- IOUtils.closeQuietly(reader);
- IOUtils.closeQuietly(writer);
- }
- }
-
- @SuppressWarnings("unchecked")
- public void destroy() throws Exception {
- ShutdownConfiguration shutdown = new ShutdownConfiguration(
- configuration.getInstanceId());
-
- Properties env = new Properties();
- env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
- ServerContextFactory.class.getName());
- Assert.notNull(environment);
- env.putAll(environment);
- env.putAll(shutdown.toJndiEnvironment());
-
- log.info("Shutting down directory server with id '"
- + configuration.getInstanceId() + "'");
-
- try {
- new InitialContext(env);
- } catch (NamingException e) {
- throw new ArgeoException("Failed to stop Apache Directory server",
- e);
- }
-
- if (workingDirectory.exists() && deleteWorkingDirOnExit) {
- if (log.isDebugEnabled())
- log.debug("Delete Apache DS working dir " + workingDirectory);
- FileUtils.deleteDirectory(workingDirectory);
- }
-
- }
-
- public void setConfiguration(MutableServerStartupConfiguration configuration) {
- this.configuration = configuration;
- }
-
- public void setWorkingDirectory(File workingDirectory) {
- this.workingDirectory = workingDirectory;
- }
-
- public void setEnvironment(Properties environment) {
- this.environment = environment;
- }
-
- public void setLdifs(List<Resource> ldifs) {
- this.ldifs = ldifs;
- }
-
- public void setLdifDirectory(File ldifDirectory) {
- this.ldifDirectory = ldifDirectory;
- }
-
- public void setDeleteWorkingDirOnExit(Boolean deleteWorkingDirOnExit) {
- this.deleteWorkingDirOnExit = deleteWorkingDirOnExit;
- }
-
- public void setIgnoredLdifAttributes(List<String> ignoredLdifAttributes) {
- this.ignoredLdifAttributes = ignoredLdifAttributes;
- }
-
- public void setLdifPassword(String ldifPassword) {
- this.ldifPassword = ldifPassword;
- }
-
- public void setLdifPasswordAttribute(String ldifPasswordAttribute) {
- this.ldifPasswordAttribute = ldifPasswordAttribute;
- }
-
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.argeo.server.rap.webapp</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
+++ /dev/null
-#Tue Mar 01 15:09:47 CET 2011
-eclipse.preferences.version=1
-pluginProject.extensions=false
-resolve.requirebundle=false
+++ /dev/null
-<!-- Spring OSGi Web 1.2.1 doesn't take context.xml files into account, so
- we set cookies to false at deployment -->
-<Context cookies="false">
-</Context>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
- <import resource="osgi.xml" />
- <import resource="security-filters.xml" />
- <!-- <import resource="security.xml" /> -->
-
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <property name="locations">
- <value>osgibundle:rap-webapp.properties</value>
- </property>
- </bean>
-
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"\r
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"\r
- xmlns:security="http://www.springframework.org/schema/security"\r
- xsi:schemaLocation="http://www.springframework.org/schema/osgi \r
- http://www.springframework.org/schema/osgi/spring-osgi-1.1.xsd\r
- http://www.springframework.org/schema/beans \r
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
- http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd">\r
-\r
- <reference id="authenticationManager"\r
- interface="org.springframework.security.authentication.AuthenticationManager" />\r
- <reference id="userDetailsService"\r
- interface="org.springframework.security.core.userdetails.UserDetailsService"\r
- cardinality="0..1" />\r
-</beans:beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
-
- <bean id="springSecurityFilterChain" class="org.springframework.security.util.FilterChainProxy">
- <sec:filter-chain-map path-type="ant">
- <sec:filter-chain pattern="/private"
- filters="session,x509,basic,rememberMe,exception,interceptor" />
- <sec:filter-chain pattern="/basicauth"
- filters="session,x509,basic,exception,interceptor" />
- <sec:filter-chain pattern="/clientauth"
- filters="session,x509,exception,interceptor" />
- <!-- <sec:filter-chain pattern="/node" filters="session,x509,exception,interceptor" /> -->
- <sec:filter-chain pattern="/public"
- filters="session,anonymous,exception,interceptorPublic" />
- <sec:filter-chain pattern="/j_spring_security_logout"
- filters="session,logout,exception" />
- </sec:filter-chain-map>
- </bean>
-
- <!-- The actual authorization checks (called last, but first here for ease
- of configuration) -->
- <bean id="interceptor" parent="filterInvocationInterceptorTemplate">
- <property name="objectDefinitionSource">
- <value>
- PATTERN_TYPE_APACHE_ANT
- /**=ROLE_USER,ROLE_ADMIN
- </value>
- </property>
- </bean>
- <bean id="interceptorPublic" parent="filterInvocationInterceptorTemplate">
- <property name="objectDefinitionSource">
- <value>
- PATTERN_TYPE_APACHE_ANT
- /**=IS_AUTHENTICATED_ANONYMOUSLY
- </value>
- </property>
- </bean>
-
- <bean id="x509"
- class="org.springframework.security.ui.preauth.x509.X509PreAuthenticatedProcessingFilter">
- <property name="authenticationManager" ref="authenticationManager" />
- <property name="principalExtractor">
- <bean
- class="org.springframework.security.ui.preauth.x509.SubjectDnX509PrincipalExtractor">
- <property name="subjectDnRegex" value="CN=(.*?)," />
- </bean>
- </property>
- </bean>
-
- <!-- Integrates the authentication information in the http sessions -->
- <bean id="session"
- class="org.springframework.security.context.HttpSessionContextIntegrationFilter">
- <property name="allowSessionCreation" value="true" />
- </bean>
-
- <!-- Processes logouts, removing both session informations and the remember-me
- cookie from the browser -->
- <bean id="logout" class="org.springframework.security.ui.logout.LogoutFilter">
- <constructor-arg value="/logout" />
- <constructor-arg>
- <list>
- <ref bean="rememberMeServices" />
- <bean
- class="org.springframework.security.ui.logout.SecurityContextLogoutHandler" />
- </list>
- </constructor-arg>
- </bean>
-
- <!-- Use the remember me cookie to authenticate -->
- <bean id="rememberMe"
- class="org.springframework.security.ui.rememberme.RememberMeProcessingFilter">
- <property name="authenticationManager" ref="authenticationManager" />
- <property name="rememberMeServices" ref="rememberMeServices" />
- </bean>
-
- <bean id="rememberMeServices"
- class="org.springframework.security.ui.rememberme.TokenBasedRememberMeServices">
- <property name="userDetailsService" ref="userDetailsService" />
- <property name="key" value="${argeo.security.systemKey}" />
- <property name="alwaysRemember" value="true" />
- </bean>
-
- <!-- Basic authentication -->
- <bean id="basic"
- class="org.springframework.security.ui.basicauth.BasicProcessingFilter">
- <property name="authenticationManager">
- <ref bean="authenticationManager" />
- </property>
- <property name="authenticationEntryPoint">
- <ref local="basicProcessingFilterEntryPoint" />
- </property>
- <property name="rememberMeServices" ref="rememberMeServices" />
- </bean>
-
- <!-- Activate basic auth when needed -->
- <bean id="basicProcessingFilterEntryPoint"
- class="org.springframework.security.ui.basicauth.BasicProcessingFilterEntryPoint">
- <property name="realmName">
- <value>${argeo.server.realmName}</value>
- </property>
- </bean>
-
- <!-- If everything else failed, anonymous authentication -->
- <bean id="anonymous"
- class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter">
- <property name="key" value="${argeo.security.systemKey}" />
- <property name="userAttribute" value="anonymous,ROLE_ANONYMOUS" />
- </bean>
-
- <!-- Reacts to security related exceptions -->
- <bean id="exception"
- class="org.springframework.security.ui.ExceptionTranslationFilter">
- <property name="authenticationEntryPoint">
- <ref bean="basicProcessingFilterEntryPoint" />
- </property>
- <property name="accessDeniedHandler">
- <bean class="org.springframework.security.ui.AccessDeniedHandlerImpl">
- <property name="errorPage" value="/error" />
- </bean>
- </property>
- </bean>
-
- <!-- Template for authorization checks -->
- <bean id="filterInvocationInterceptorTemplate" abstract="true"
- class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
- <property name="authenticationManager" ref="authenticationManager" />
- <property name="accessDecisionManager">
- <bean class="org.springframework.security.vote.AffirmativeBased">
- <property name="allowIfAllAbstainDecisions" value="false" />
- <property name="decisionVoters">
- <list>
- <bean class="org.springframework.security.vote.RoleVoter" />
- <bean class="org.springframework.security.vote.AuthenticatedVoter" />
- </list>
- </property>
- </bean>
- </property>
- </bean>
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
-
- <bean id="urlMapping"
- class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- <property name="mappings">
- <props>
- <prop key="*">osgiServiceController</prop>
- </props>
- </property>
- </bean>
-
- <bean id="osgiServiceController"
- class="org.springframework.web.servlet.mvc.ServletWrappingController">
- <property name="servletClass">
- <value>org.eclipse.equinox.http.servlet.HttpServiceServlet</value>
- </property>
- <property name="servletName">
- <value>osgiService</value>
- </property>
- </bean>
-</beans>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- version="2.5">
-
- <display-name>Argeo OSGi Webapp</display-name>
-
- <!-- General -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
-
- <listener>
- <display-name>Spring Context</display-name>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextClass</param-name>
- <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
- </context-param>
-
- <!-- OSGi Http Service -->
- <servlet>
- <servlet-name>service</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextClass</param-name>
- <param-value>org.springframework.osgi.web.context.support.OsgiBundleXmlWebApplicationContext</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>service</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
-
- <!-- Security -->
- <filter>
- <filter-name>springSecurityFilterChain</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
-<!---->
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/private</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/basicauth</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/clientauth</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/none</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/public</url-pattern>
- </filter-mapping>
-
-</web-app>
+++ /dev/null
-Web-ContextPath: ui
-Import-Package: org.springframework.beans.factory.config,\
-org.eclipse.equinox.http.servlet,\
-org.springframework.osgi.web.context.support,\
-org.springframework.security,\
-org.springframework.security.context,\
-org.springframework.security.intercept.web,\
-org.springframework.security.providers.anonymous,\
-org.springframework.security.ui,\
-org.springframework.security.ui.basicauth,\
-org.springframework.security.ui.logout,\
-org.springframework.security.ui.rememberme,\
-org.springframework.security.ui.webapp,\
-org.springframework.security.ui.preauth.x509,\
-org.springframework.security.userdetails,\
-org.springframework.security.util,\
-org.springframework.security.vote,\
-org.springframework.security.wrapper,\
-org.springframework.web.context,\
-org.springframework.web.filter,\
-org.springframework.web.servlet,\
-org.springframework.web.servlet.handler,\
-org.springframework.web.servlet.mvc,\
-*
\ No newline at end of file
+++ /dev/null
-bin.includes = META-INF/,\
- WEB-INF/
+++ /dev/null
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.argeo.commons</groupId>
- <version>2.1.12-SNAPSHOT</version>
- <artifactId>argeo-commons</artifactId>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>org.argeo.server.rap.webapp</artifactId>
- <name>Commons Server RAP Webapp</name>
- <description>Integrates into OSGi HTTP registry</description>
-</project>
\ No newline at end of file
+++ /dev/null
-argeo.security.systemKey=argeo
-argeo.server.realmName=Argeo
\ No newline at end of file