Repository: cxf-fediz
Updated Branches:
  refs/heads/1.1.x-fixes 612dd077d -> 743bad8b1


[FEDIZ-98] Dynamic STS Realm Parser


Project: http://git-wip-us.apache.org/repos/asf/cxf-fediz/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf-fediz/commit/743bad8b
Tree: http://git-wip-us.apache.org/repos/asf/cxf-fediz/tree/743bad8b
Diff: http://git-wip-us.apache.org/repos/asf/cxf-fediz/diff/743bad8b

Branch: refs/heads/1.1.x-fixes
Commit: 743bad8b146796ff562119a904e765358af3c4c7
Parents: 612dd07
Author: Jan Bernhardt <[email protected]>
Authored: Wed Mar 11 11:10:07 2015 +0100
Committer: Jan Bernhardt <[email protected]>
Committed: Wed Mar 11 11:10:07 2015 +0100

----------------------------------------------------------------------
 .gitignore                                         |  1 +
 .../fediz/service/sts/realms/UriRealmParser.java   | 17 ++++++++++++-----
 .../sts/src/main/webapp/WEB-INF/cxf-transport.xml  |  6 +++---
 3 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/743bad8b/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index f5f8e88..216671a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,5 @@
 target/
 velocity.log
 .externalToolBuilders/
+.idea
 

http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/743bad8b/services/sts/src/main/java/org/apache/cxf/fediz/service/sts/realms/UriRealmParser.java
----------------------------------------------------------------------
diff --git 
a/services/sts/src/main/java/org/apache/cxf/fediz/service/sts/realms/UriRealmParser.java
 
b/services/sts/src/main/java/org/apache/cxf/fediz/service/sts/realms/UriRealmParser.java
index e6caa65..1efe4b6 100644
--- 
a/services/sts/src/main/java/org/apache/cxf/fediz/service/sts/realms/UriRealmParser.java
+++ 
b/services/sts/src/main/java/org/apache/cxf/fediz/service/sts/realms/UriRealmParser.java
@@ -19,6 +19,7 @@
 
 package org.apache.cxf.fediz.service.sts.realms;
 
+import java.util.Map;
 import java.util.StringTokenizer;
 
 import javax.xml.ws.WebServiceContext;
@@ -30,10 +31,10 @@ import org.slf4j.LoggerFactory;
 
 public class UriRealmParser implements RealmParser {
 
-    public enum REALMS { REALMA, REALMB };
-
     private static final Logger LOG = 
LoggerFactory.getLogger(UriRealmParser.class);
 
+    private Map<String, Object> realmMap;
+
     @Override
     public String parseRealm(WebServiceContext context) throws STSException {
         String url = 
(String)context.getMessageContext().get("org.apache.cxf.request.url");
@@ -52,13 +53,19 @@ public class UriRealmParser implements RealmParser {
             realm = st.nextToken();
         }
         realm = realm.toUpperCase();
-        try {
-            REALMS.valueOf(realm);
-        } catch (IllegalArgumentException ex) {
+        if (realmMap == null || !realmMap.containsKey(realm)) {
             LOG.warn("Unknown realm: " + realm);
             throw new STSException("Unknown realm: " + realm);
         }
         return realm;
     }
 
+    public Map<String, Object> getRealmMap() {
+        return realmMap;
+    }
+
+    public void setRealmMap(Map<String, Object> realms) {
+        this.realmMap = realms;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cxf-fediz/blob/743bad8b/services/sts/src/main/webapp/WEB-INF/cxf-transport.xml
----------------------------------------------------------------------
diff --git a/services/sts/src/main/webapp/WEB-INF/cxf-transport.xml 
b/services/sts/src/main/webapp/WEB-INF/cxf-transport.xml
index 3efe74d..4fe2261 100644
--- a/services/sts/src/main/webapp/WEB-INF/cxf-transport.xml
+++ b/services/sts/src/main/webapp/WEB-INF/cxf-transport.xml
@@ -137,9 +137,9 @@
        
        <bean id="samlRealmCodec" 
class="org.apache.cxf.fediz.service.sts.realms.SamlRealmCodec" />
        
-       <bean id="customRealmParser" 
class="org.apache.cxf.fediz.service.sts.realms.UriRealmParser"/>
-       
-
+       <bean id="customRealmParser" 
class="org.apache.cxf.fediz.service.sts.realms.UriRealmParser">
+               <property name="realmMap" ref="realms" />
+       </bean>
        
        <bean id="transportSamlTokenValidator" 
class="org.apache.cxf.sts.token.validator.SAMLTokenValidator">
            <property name="samlRealmCodec" ref="samlRealmCodec" />

Reply via email to