Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

DS-1906: Adds configurable option to reconvert shibboleth attributes.

  • Loading branch information...
commit ab45683d7a869abef07498287b2905415a155b8e 1 parent e324c27
@pnbecker pnbecker authored Hardy Pottinger committed
View
17 dspace-api/src/main/java/org/dspace/authenticate/ShibAuthentication.java
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
import javax.servlet.http.HttpServletResponse;
@@ -1094,6 +1095,22 @@ private String findAttribute(HttpServletRequest request, String name) {
value = request.getHeader(name.toLowerCase());
if (StringUtils.isEmpty(value))
value = request.getHeader(name.toUpperCase());
+
+ boolean reconvertAttributes =
+ ConfigurationManager.getBooleanProperty(
+ "authentication-shibboleth",
+ "reconvert.attributes",
+ false);
+
+ if (reconvertAttributes)
+ {
+ try {
+ value = new String(value.getBytes("ISO-8859-1"), "UTF-8");
+ } catch (UnsupportedEncodingException ex) {
+ log.warn("Failed to reconvert shibboleth attribute ("
+ + name + ").", ex);
+ }
+ }
return value;
}
View
6 dspace/config/modules/authentication-shibboleth.cfg
@@ -137,6 +137,12 @@ lastname-header = SHIB-SURNAME
# If the eperson metadata field is not found, should it be automatically created?
eperson.metadata.autocreate = true;
+# Shibboleth attributes are by default UTF-8 encoded. Some servlet container
+# automatically converts the attributes from ISO-8859-1 (latin-1) to UTF-8.
+# As the attributes already were UTF-8 encoded it may be necessary to reconvert
+# them. If you detect problems with special characters in shibboleth attributes
+# set this to true (default to false).
+reconvert.attributes = false
##
## Role-based Groups:
Please sign in to comment.
Something went wrong with that request. Please try again.