mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-17 15:03:18 +00:00
DS-1906: Adds configurable option to reconvert shibboleth attributes.
This commit is contained in:
@@ -26,6 +26,7 @@ import java.util.Iterator;
|
||||
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 @@ public class ShibAuthentication implements AuthenticationMethod
|
||||
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;
|
||||
}
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user