Skip to content

Commit

Permalink
Allow exclamation mark in username by default
Browse files Browse the repository at this point in the history
It is allowed in the mail address spec
https://www.pivotaltracker.com/story/show/87188774
[#87188774]
  • Loading branch information
fhanik committed Feb 26, 2015
1 parent 3f11001 commit 563875c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 3 deletions.
Expand Up @@ -96,7 +96,7 @@ public class JdbcScimUserProvisioning extends AbstractQueryable<ScimUser> implem

private final RowMapper<ScimUser> mapper = new ScimUserRowMapper();

private Pattern usernamePattern = Pattern.compile("[a-zA-Z0-9+\\-_.@']+");
private Pattern usernamePattern = Pattern.compile("[a-zA-Z0-9+\\-_.@'!]+");

public JdbcScimUserProvisioning(JdbcTemplate jdbcTemplate, JdbcPagingListFactory pagingListFactory) {
super(jdbcTemplate, pagingListFactory, new ScimUserRowMapper());
Expand Down
Expand Up @@ -121,6 +121,15 @@ public void clear() throws Exception {
IdentityZoneHolder.clear();
}

@Test
public void canCreateUserWithExclamationMarkInUsername() {
String userName = "jo!!@foo.com";
ScimUser user = new ScimUser(null, userName, "Jo", "User");
user.addEmail(userName);
ScimUser created = db.createUser(user, "j7hyqpassX");
assertEquals(userName, created.getUserName());
}

@Test
public void canCreateUserInDefaultIdentityZone() {
ScimUser user = new ScimUser(null, "jo@foo.com", "Jo", "User");
Expand Down
2 changes: 1 addition & 1 deletion uaa/src/main/webapp/WEB-INF/spring/scim-endpoints.xml
Expand Up @@ -32,7 +32,7 @@
</property>
<property name="queryConverter" ref="scimUserQueryConverter" />
<property name="deactivateOnDelete" value="${scim.delete.deactivate:false}" />
<property name="usernamePattern" value="${scim.username_pattern:[a-zA-Z0-9+\-_.@']+}" />
<property name="usernamePattern" value="${scim.username_pattern:[a-zA-Z0-9+\-_.@'!]+}" />
</bean>

<bean id="scimEventPublisher" class="org.cloudfoundry.identity.uaa.scim.event.ScimEventPublisher"/>
Expand Down
Expand Up @@ -88,8 +88,10 @@ private ScimUser createUser(String token) throws Exception {
}

private ScimUser createUser(String token, String subdomain) throws Exception {
ScimUser user = getScimUser();
return createUser(getScimUser(), token, subdomain);
}

private ScimUser createUser(ScimUser user, String token, String subdomain) throws Exception {
byte[] requestBody = new ObjectMapper().writeValueAsBytes(user);
MockHttpServletRequestBuilder post = post("/Users")
.header("Authorization", "Bearer " + token)
Expand Down Expand Up @@ -118,6 +120,15 @@ private ScimUser getScimUser() {
return user;
}

@Test
public void testCanCreateUserWithExclamationMark() throws Exception {
String email = "joe!!@"+generator.generate().toLowerCase()+".com";
ScimUser user = getScimUser();
user.setUserName(email);
user.setPrimaryEmail(email);
createUser(user, scimReadWriteToken, null);
}

@Test
public void testCreateUser() throws Exception {
createUser(scimReadWriteToken);
Expand Down

0 comments on commit 563875c

Please sign in to comment.