Author: ffang
Date: Wed Oct 16 07:29:42 2013
New Revision: 1532662
URL: http://svn.apache.org/r1532662
Log:
[SMX4NMR-315]provide a configurable way to specify the Karaf RolePrincipal
classname when expose NMR DefaultAuthorizationEntry as OSGi service
Modified:
servicemix/smx4/nmr/trunk/nmr/api/src/main/java/org/apache/servicemix/nmr/api/security/GroupPrincipal.java
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntry.java
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
Modified:
servicemix/smx4/nmr/trunk/nmr/api/src/main/java/org/apache/servicemix/nmr/api/security/GroupPrincipal.java
URL:
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/api/src/main/java/org/apache/servicemix/nmr/api/security/GroupPrincipal.java?rev=1532662&r1=1532661&r2=1532662&view=diff
==============================================================================
---
servicemix/smx4/nmr/trunk/nmr/api/src/main/java/org/apache/servicemix/nmr/api/security/GroupPrincipal.java
(original)
+++
servicemix/smx4/nmr/trunk/nmr/api/src/main/java/org/apache/servicemix/nmr/api/security/GroupPrincipal.java
Wed Oct 16 07:29:42 2013
@@ -29,6 +29,7 @@ public class GroupPrincipal implements P
private final String name;
private transient int hash;
+ private String containerRolePrincipalClassName =
"org.apache.karaf.jaas.boot.principal.RolePrincipal";
public GroupPrincipal(String name) {
if (name == null) {
@@ -37,6 +38,11 @@ public class GroupPrincipal implements P
this.name = name;
}
+ public GroupPrincipal(String name, String containerRolePrincipalClassName)
{
+ this(name);
+ this.containerRolePrincipalClassName = containerRolePrincipalClassName;
+ }
+
public String getName() {
return name;
}
@@ -46,7 +52,7 @@ public class GroupPrincipal implements P
return true;
}
if (o == null
- ||
(!o.getClass().getName().equals("org.apache.karaf.jaas.modules.RolePrincipal")
&& getClass() != o.getClass())) {
+ ||
(!o.getClass().getName().equals(containerRolePrincipalClassName) && getClass()
!= o.getClass())) {
return false;
}
final Principal that = (Principal) o;
Modified:
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntry.java
URL:
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntry.java?rev=1532662&r1=1532661&r2=1532662&view=diff
==============================================================================
---
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntry.java
(original)
+++
servicemix/smx4/nmr/trunk/nmr/core/src/main/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntry.java
Wed Oct 16 07:29:42 2013
@@ -39,6 +39,7 @@ public class DefaultAuthorizationEntry i
private QName operation;
private Type type = Type.Add;
private int rank;
+ private String containerRolePrincipalClassName;
public DefaultAuthorizationEntry() {
}
@@ -164,8 +165,21 @@ public class DefaultAuthorizationEntry i
StringTokenizer iter = new StringTokenizer(roles, ",");
while (iter.hasMoreTokens()) {
String name = iter.nextToken().trim();
- s.add(new GroupPrincipal(name));
+ if (this.containerRolePrincipalClassName != null
+ && this.containerRolePrincipalClassName.length() > 0) {
+ s.add(new GroupPrincipal(name,
this.containerRolePrincipalClassName));
+ } else {
+ s.add(new GroupPrincipal(name));
+ }
}
return s;
}
+
+ public String getContainerRolePrincipalClassName() {
+ return containerRolePrincipalClassName;
+ }
+
+ public void setContainerRolePrincipalClassName(String
containerRolePrincipalClassName) {
+ this.containerRolePrincipalClassName = containerRolePrincipalClassName;
+ }
}
Modified:
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
URL:
http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml?rev=1532662&r1=1532661&r2=1532662&view=diff
==============================================================================
---
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
(original)
+++
servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/OSGI-INF/blueprint/servicemix-nmr.xml
Wed Oct 16 07:29:42 2013
@@ -110,6 +110,7 @@
<property name="rank" value="-2147483648"/>
<property name="roles" value="*"/>
<property name="type" value="Set"/>
+ <property name="containerRolePrincipalClassName"
value="${containerRolePrincipalClassName}"/>
</bean>
</service>
@@ -149,6 +150,7 @@
<cm:property name="maximumPoolSize" value="-1"/>
<cm:property name="queueSize" value="1024"/>
<cm:property name="bypassIfSynchronous" value="true"/>
+ <cm:property name="containerRolePrincipalClassName"
value="org.apache.karaf.jaas.boot.principal.RolePrincipal"/>
</cm:default-properties>
</cm:property-placeholder>