support schema per tenant multi-tenancy. basic auth security filter is extended to detect tenant-id header on request, verify tenant id is valid and then use provided credentials to authenticate user details against users on the tenant specific schema.

This commit is contained in:
Keith Woodlock
2012-07-13 18:05:43 +01:00
parent 816d3decf9
commit 15f0fc4677
34 changed files with 399 additions and 195 deletions
+11 -17
View File
@@ -14,19 +14,16 @@ buildscript {
apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'tomcat'
//apply plugin: 'jdepend'
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6
springVersion = '3.1.1.RELEASE'
springSecurityOauthVersion = '1.0.0.M6'
springSecurityVersion = '3.1.0.RELEASE'
hibernateValidatorVersion = '4.2.0.Final'
hibernateCoreVersion = '4.1.0.Final'
jerseyVersion = '1.12'
hibernateValidatorVersion = '4.3.0.Final'
hibernateCoreVersion = '4.1.3.Final'
jerseyVersion = '1.13'
springDataJpaVersion = '1.0.3.RELEASE'
springDatamongoDbVersion = '1.0.0.M4'
repositories {
mavenCentral()
@@ -59,7 +56,7 @@ configurations {
}
dependencies {
def tomcatVersion = '7.0.27'
def tomcatVersion = '7.0.29'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
@@ -72,17 +69,13 @@ dependencies {
)
compile(
[group: 'javax.servlet', name: 'jstl', version: '1.2'],
[group: 'org.springframework', name: 'spring-core', version: springVersion],
[group: 'org.springframework', name: 'spring-aspects', version: springVersion],
[group: 'org.springframework', name: 'spring-web', version: springVersion],
[group: 'org.springframework', name: 'spring-webmvc', version: springVersion],
[group: 'org.springframework.security', name: 'spring-security-core', version: springSecurityVersion],
[group: 'org.springframework.security', name: 'spring-security-web', version: springSecurityVersion],
[group: 'org.springframework.security', name: 'spring-security-config', version: springSecurityVersion],
[group: 'org.springframework.security', name: 'spring-security-taglibs', version: springSecurityVersion],
[group: 'org.aspectj', name: 'aspectjrt', version: '1.6.11.RELEASE'],
[group: 'org.aspectj', name: 'aspectjrt', version: '1.6.12.RELEASE'],
[group: 'javax.validation', name: 'validation-api', version: '1.0.0.GA'],
[group: 'org.hibernate', name: 'hibernate-validator', version: hibernateValidatorVersion],
@@ -105,13 +98,14 @@ dependencies {
[group: 'org.apache.commons', name: 'commons-email', version: '1.2'],
[group: 'commons-lang', name: 'commons-lang', version: '2.4'],
[group: 'org.slf4j', name: 'slf4j-api', version: '1.6.4'],
[group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.6.4'],
[group: 'org.slf4j', name: 'slf4j-api', version: '1.6.6'],
[group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.6.6'],
[group: 'ch.qos.logback', name: 'logback-core', version: '1.0.1'],
[group: 'ch.qos.logback', name: 'logback-classic', version: '1.0.0'],
[group: 'ch.qos.logback', name: 'logback-core', version: '1.0.6'],
[group: 'ch.qos.logback', name: 'logback-classic', version: '1.0.6'],
[group: 'mysql', name: 'mysql-connector-java', version: '5.1.18'],
[group: 'mysql', name: 'mysql-connector-java', version: '5.1.21'],
[group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: '7.0.29'],
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.8.3-GA'],
[group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.8.3-GA'],