Skip to content

Commit 9f8fde0

Browse files
JimSermersheimkofemann
authored andcommitted
remove dependency on dcache-auth
fixes #81 #80 Signed-off-by: Jim Sermersheim <[email protected]> Signed-off-by: Tigran Mkrtchyan <[email protected]>
1 parent 145e10b commit 9f8fde0

File tree

6 files changed

+55
-42
lines changed

6 files changed

+55
-42
lines changed

oncrpc4j-core/pom.xml

100644100755
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<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/xsd/maven-4.0.0.xsd">
2-
2+
33
<modelVersion>4.0.0</modelVersion>
44

55
<parent>
@@ -42,10 +42,6 @@
4242
<groupId>org.glassfish.grizzly</groupId>
4343
<artifactId>grizzly-framework-monitoring</artifactId>
4444
</dependency>
45-
<dependency>
46-
<groupId>org.dcache.common</groupId>
47-
<artifactId>dcache-auth</artifactId>
48-
</dependency>
4945
<dependency>
5046
<groupId>com.google.guava</groupId>
5147
<artifactId>guava</artifactId>

oncrpc4j-core/src/main/java/org/dcache/oncrpc4j/portmap/OncRpcbindServer.java

100644100755
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,25 @@
1919
*/
2020
package org.dcache.oncrpc4j.portmap;
2121

22-
import java.io.IOException;
23-
import java.security.Principal;
24-
import java.util.ArrayList;
25-
import java.util.HashSet;
26-
import java.util.Set;
27-
import java.util.function.Predicate;
28-
import javax.security.auth.kerberos.KerberosPrincipal;
29-
import org.slf4j.Logger;
30-
import org.slf4j.LoggerFactory;
31-
import org.dcache.auth.UidPrincipal;
22+
import com.sun.security.auth.UnixNumericUserPrincipal;
3223
import org.dcache.oncrpc4j.rpc.OncRpcException;
24+
import org.dcache.oncrpc4j.rpc.RpcAuthType;
3325
import org.dcache.oncrpc4j.rpc.RpcCall;
3426
import org.dcache.oncrpc4j.rpc.RpcDispatchable;
35-
import org.dcache.oncrpc4j.rpc.RpcAuthType;
3627
import org.dcache.oncrpc4j.rpc.net.IpProtocolType;
3728
import org.dcache.oncrpc4j.rpc.net.netid;
3829
import org.dcache.oncrpc4j.xdr.XdrBoolean;
3930
import org.dcache.oncrpc4j.xdr.XdrVoid;
31+
import org.slf4j.Logger;
32+
import org.slf4j.LoggerFactory;
33+
34+
import javax.security.auth.kerberos.KerberosPrincipal;
35+
import java.io.IOException;
36+
import java.security.Principal;
37+
import java.util.ArrayList;
38+
import java.util.HashSet;
39+
import java.util.Set;
40+
import java.util.function.Predicate;
4041

4142

4243
public class OncRpcbindServer implements RpcDispatchable {
@@ -192,7 +193,7 @@ private String getOwner(RpcCall call) {
192193
filter = p -> p.getClass() == KerberosPrincipal.class;
193194
break;
194195
case RpcAuthType.UNIX:
195-
filter = p -> p.getClass() == UidPrincipal.class;
196+
filter = p -> p.getClass() == UnixNumericUserPrincipal.class;
196197
break;
197198
default:
198199
filter = p -> false;

oncrpc4j-core/src/main/java/org/dcache/oncrpc4j/rpc/RpcAuthTypeNone.java

100644100755
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@
1919
*/
2020
package org.dcache.oncrpc4j.rpc;
2121

22+
import org.dcache.oncrpc4j.xdr.XdrAble;
2223
import org.dcache.oncrpc4j.xdr.XdrDecodingStream;
2324
import org.dcache.oncrpc4j.xdr.XdrEncodingStream;
24-
import org.dcache.oncrpc4j.xdr.XdrAble;
25-
import java.io.IOException;
2625
import org.slf4j.Logger;
2726
import org.slf4j.LoggerFactory;
27+
2828
import javax.security.auth.Subject;
29-
import org.dcache.auth.Subjects;
29+
import java.io.IOException;
3030

3131
public class RpcAuthTypeNone implements RpcAuth, XdrAble {
3232

33-
private final int _type = RpcAuthType.NONE;
33+
private final int _type = RpcAuthType.NONE;
3434
private byte[] body;
3535
private RpcAuthVerifier _verifier = new RpcAuthVerifier(RpcAuthType.NONE, new byte[0]);
36-
private final Subject _subject = Subjects.NOBODY;
36+
private final Subject _subject;
3737

3838
private final static Logger _log = LoggerFactory.getLogger(RpcAuthTypeNone.class);
3939

@@ -43,6 +43,8 @@ public RpcAuthTypeNone() {
4343

4444
public RpcAuthTypeNone(byte[] body) {
4545
this.body = body;
46+
_subject = new Subject();
47+
_subject.setReadOnly();
4648
}
4749

4850
@Override

oncrpc4j-core/src/main/java/org/dcache/oncrpc4j/rpc/RpcAuthTypeTls.java

100644100755
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.dcache.oncrpc4j.xdr.XdrDecodingStream;
2727
import org.dcache.oncrpc4j.xdr.XdrEncodingStream;
2828

29-
import org.dcache.auth.Subjects;
3029

3130
/**
3231
*
@@ -35,6 +34,12 @@ public class RpcAuthTypeTls implements RpcAuth, XdrAble {
3534

3635
private final static byte[] STARTTLS = "STARTTLS".getBytes(StandardCharsets.US_ASCII);
3736
private final RpcAuthVerifier verifier = new RpcAuthVerifier(RpcAuthType.NONE, STARTTLS);
37+
private final Subject _subject;
38+
39+
public RpcAuthTypeTls() {
40+
_subject = new Subject();
41+
_subject.setReadOnly();
42+
}
3843

3944
@Override
4045
public int type() {
@@ -48,7 +53,7 @@ public RpcAuthVerifier getVerifier() {
4853

4954
@Override
5055
public Subject getSubject() {
51-
return Subjects.NOBODY;
56+
return _subject;
5257
}
5358

5459
@Override

oncrpc4j-core/src/main/java/org/dcache/oncrpc4j/rpc/RpcAuthTypeUnix.java

100644100755
Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,19 @@
1919
*/
2020
package org.dcache.oncrpc4j.rpc;
2121

22+
import com.sun.security.auth.UnixNumericGroupPrincipal;
23+
import com.sun.security.auth.UnixNumericUserPrincipal;
24+
import org.dcache.oncrpc4j.xdr.XdrAble;
2225
import org.dcache.oncrpc4j.xdr.XdrDecodingStream;
2326
import org.dcache.oncrpc4j.xdr.XdrEncodingStream;
24-
import org.dcache.oncrpc4j.xdr.XdrAble;
25-
import java.io.IOException;
2627
import org.slf4j.Logger;
2728
import org.slf4j.LoggerFactory;
28-
import java.util.Arrays;
29+
2930
import javax.security.auth.Subject;
30-
import org.dcache.auth.Subjects;
31+
import java.io.IOException;
32+
import java.security.Principal;
33+
import java.util.Arrays;
34+
import java.util.Set;
3135

3236
public class RpcAuthTypeUnix implements RpcAuth, XdrAble {
3337

@@ -56,8 +60,7 @@ public RpcAuthTypeUnix(int uid, int gid, int[] gids, int stamp, String machine)
5660
4/*machine len place holder*/ + _machine.length() +
5761
((4 - (_machine.length() & 3)) & 3) /*padding bytes*/+
5862
+ 4/*stamp*/;
59-
60-
_subject = Subjects.of(_uid, _gid, _gids);
63+
_subject = buildUnixSubject(uid, gid, gids);
6164
}
6265

6366
public void xdrDecode(XdrDecodingStream xdr) throws OncRpcException, IOException {
@@ -70,7 +73,18 @@ public void xdrDecode(XdrDecodingStream xdr) throws OncRpcException, IOException
7073
_gids = xdr.xdrDecodeIntVector();
7174
_verifier.xdrDecode(xdr);
7275

73-
_subject = Subjects.of(_uid, _gid, _gids);
76+
_subject = buildUnixSubject(_uid, _gid, _gids);
77+
}
78+
79+
private static Subject buildUnixSubject(int uid, int gid, int[] gids) {
80+
final Subject unixSubject = new Subject();
81+
final Set<Principal> principals = unixSubject.getPrincipals();
82+
principals.add(new UnixNumericUserPrincipal(uid));
83+
principals.add(new UnixNumericGroupPrincipal(gid, true));
84+
for (int gidElem : gids) {
85+
principals.add(new UnixNumericGroupPrincipal(gidElem, false));
86+
}
87+
return unixSubject;
7488
}
7589

7690
@Override

pom.xml

100644100755
Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,39 +43,39 @@
4343
<module>oncrpc4j-portmapdaemon</module>
4444
<module>oncrpc4j-benchmark</module>
4545
</modules>
46-
46+
4747
<properties>
4848
<!-- PROPERTIES FOR DEPENDENCIES
4949
Each property is constructed from the artifact name
5050
They are in alphabetical order for each subsection
5151
-->
52-
52+
5353
<!-- version of plugins in pluginManagement -->
5454
<build-helper-maven-plugin.version>1.9.1</build-helper-maven-plugin.version>
5555
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
5656
<maven-pmd-plugin.version>3.0.1</maven-pmd-plugin.version>
57-
57+
5858
<!-- version of other plugins-->
5959
<animal-sniffer-maven-plugin>1.15</animal-sniffer-maven-plugin>
6060
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
6161
<maven-jar-plugin.version>2.4</maven-jar-plugin.version>
6262
<maven-release-plugin>2.4.2</maven-release-plugin>
63-
63+
6464
<!-- version of dependencies-->
6565
<dcache-auth.version>0.0.11</dcache-auth.version>
6666
<grizzly-framework.version>2.4.3</grizzly-framework.version>
6767
<guava.version>24.1-jre</guava.version>
6868
<slf4j-api.version>1.7.25</slf4j-api.version>
6969
<spring-context.version>5.1.0.RELEASE</spring-context.version>
7070
<bc.version>1.60</bc.version>
71-
71+
7272
<!-- version of test dependencies -->
7373
<junit.version>4.12</junit.version>
7474
<mockito-core.version>2.22.0</mockito-core.version>
7575
<logback-classic.version>1.2.3</logback-classic.version>
7676
<jmh.version>1.21</jmh.version>
7777
</properties>
78-
78+
7979

8080
<build>
8181

@@ -233,11 +233,6 @@
233233
<artifactId>guava</artifactId>
234234
<version>${guava.version}</version>
235235
</dependency>
236-
<dependency>
237-
<groupId>org.dcache.common</groupId>
238-
<artifactId>dcache-auth</artifactId>
239-
<version>${dcache-auth.version}</version>
240-
</dependency>
241236
<dependency>
242237
<groupId>org.slf4j</groupId>
243238
<artifactId>slf4j-api</artifactId>

0 commit comments

Comments
 (0)