# HG changeset patch # User Bjoern Ricks # Date 1342171673 0 # Node ID 98514ab2c9ba1828f638fbeb5cb6abbc1671a727 # Parent 5161e25392ea0508835d9afeda297b54453a2702 Implement getting a list of roles from a logged in user flys-client/trunk@4975 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 5161e25392ea -r 98514ab2c9ba flys-client/ChangeLog --- a/flys-client/ChangeLog Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/ChangeLog Fri Jul 13 09:27:53 2012 +0000 @@ -1,3 +1,12 @@ +2012-07-13 Björn Ricks + + * src/main/java/de/intevation/flys/client/server/auth/User.java, + src/main/java/de/intevation/flys/client/server/auth/plain/Authenticator.java + src/main/java/de/intevation/flys/client/server/auth/DefaultUser.java + src/main/java/de/intevation/flys/client/server/auth/was/Response.java + src/main/java/de/intevation/flys/client/server/auth/was/User.java: + Implement getting a list of roles from a logged in user. + 2012-07-13 Raimund Renkert * main/java/de/intevation/flys/client/server/CollectionHelper.java: diff -r 5161e25392ea -r 98514ab2c9ba flys-client/src/main/java/de/intevation/flys/client/server/auth/DefaultUser.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/DefaultUser.java Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/DefaultUser.java Fri Jul 13 09:27:53 2012 +0000 @@ -1,19 +1,24 @@ package de.intevation.flys.client.server.auth; +import java.util.List; +import java.util.LinkedList; + public class DefaultUser implements User { protected String name; protected String password; protected boolean expired; + protected List roles; public DefaultUser() { } - public DefaultUser(String name, String password, boolean expired) { + public DefaultUser(String name, String password, boolean expired, List roles) { this.name = name; this.password = password; this.expired = expired; + this.roles = roles; } @Override @@ -42,5 +47,15 @@ public void setExpired(boolean expired) { this.expired = expired; } + + @Override + public List getRoles() { + // return clone of the list? + return this.roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } } // vim:set ts=4 sw=4 si et fenc=utf8 tw=80: diff -r 5161e25392ea -r 98514ab2c9ba flys-client/src/main/java/de/intevation/flys/client/server/auth/User.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/User.java Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/User.java Fri Jul 13 09:27:53 2012 +0000 @@ -1,5 +1,7 @@ package de.intevation.flys.client.server.auth; +import java.util.List; + public interface User { public String getName(); @@ -7,5 +9,7 @@ public String getPassword(); public boolean hasExpired(); + + public List getRoles(); } // vim:set ts=4 sw=4 si et fenc=utf8 tw=80: diff -r 5161e25392ea -r 98514ab2c9ba flys-client/src/main/java/de/intevation/flys/client/server/auth/plain/Authenticator.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/plain/Authenticator.java Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/plain/Authenticator.java Fri Jul 13 09:27:53 2012 +0000 @@ -8,6 +8,8 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.util.List; +import java.util.ArrayList; public class Authenticator implements de.intevation.flys.client.server.auth.Authenticator @@ -17,10 +19,12 @@ { protected String user; protected String password; + protected List roles; - public Authentication(String user, String password) { + public Authentication(String user, String password, List roles) { this.user = user; this.password = password; + this.roles = roles; } @Override @@ -31,7 +35,7 @@ @Override public User getUser() { return isSuccess() - ? new DefaultUser(user, password, false) + ? new DefaultUser(user, password, false, roles) : null; } } // class Authentication @@ -62,7 +66,7 @@ { File file = credentialsFile(); if (!file.canRead() || !file.isFile()) { - return new Authentication(null, null); + return new Authentication(null, null, new ArrayList()); } BufferedReader reader = @@ -76,13 +80,16 @@ continue; } String [] parts = line.split("\\s+"); - // TODO: role? if (parts.length < 2) { continue; } if (parts[0].equals(username)) { if (parts[1].equals(password)) { - return new Authentication(username, password); + List roles = new ArrayList(parts.length - 2); + for (int i = 2; i < parts.length; i++) { + roles.add(parts[i]); + } + return new Authentication(username, password, roles); } // Stop: user found, wrong password break; @@ -92,7 +99,7 @@ finally { reader.close(); } - return new Authentication(null, null); + return new Authentication(null, null, new ArrayList()); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 5161e25392ea -r 98514ab2c9ba flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Response.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Response.java Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Response.java Fri Jul 13 09:27:53 2012 +0000 @@ -2,6 +2,8 @@ import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; import org.apache.commons.codec.binary.Base64InputStream; @@ -102,7 +104,7 @@ if (assertion == null) { throw new AuthenticationException("Response doesn't contain an assertion"); } - return new User(this.username, this.password, assertion); + return new User(this.username, this.password, this.assertion.getRoles(), assertion); } } // vim: set si et fileencoding=utf-8 ts=4 sw=4 tw=80: diff -r 5161e25392ea -r 98514ab2c9ba flys-client/src/main/java/de/intevation/flys/client/server/auth/was/User.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/User.java Fri Jul 13 08:54:57 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/User.java Fri Jul 13 09:27:53 2012 +0000 @@ -1,6 +1,7 @@ package de.intevation.flys.client.server.auth.was; import java.util.Date; +import java.util.List; import de.intevation.flys.client.server.auth.DefaultUser; @@ -10,9 +11,10 @@ private Assertion assertion; - public User(String name, String password, Assertion assertion) { - this.name = name; - this.password = password; + public User(String name, String password, List roles, Assertion assertion) { + this.setName(name); + this.setPassword(password); + this.setRoles(roles); this.assertion = assertion; }