Github user necouchman commented on a diff in the pull request: https://github.com/apache/guacamole-client/pull/299#discussion_r195743264 --- Diff: extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java --- @@ -67,6 +69,21 @@ */ private static final Pattern X_FORWARDED_FOR = Pattern.compile("^" + IP_ADDRESS_REGEX + "(, " + IP_ADDRESS_REGEX + ")*$"); + /** + * Arbitrary attributes associated with this RemoteAuthenticatedUser object. + */ + private Map<String, String> attributes = new HashMap<String, String>(); --- End diff -- Yes, but `RemoteAuthenticatedUser` is abstract, so the `getAttributes()` and `setAttributes()` methods do not have to be implemented in it - they can be, as you've done, here, but they can also be implemented by all of the implementing classes. Obviously implementing them in `RemoteAuthenticatedUser` requires fewer lines of code, as then you don't have to implement in both `SharedAuthenticatedUser` and `ModeledAuthenticatedUser`, I'm just not sure how "clean" this is, or if the `RemoteAuthenticatedUser` class is really the right place for implementing these attribute handlers.
---