Skip to content

Commit 1c238e1

Browse files
committed
Merge branch '4.16'
2 parents d910c3c + ee27708 commit 1c238e1

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,11 @@
100100
public class SAMLUtils {
101101
public static final Logger s_logger = Logger.getLogger(SAMLUtils.class);
102102

103+
static final String charset = "abcdefghijklmnopqrstuvwxyz";
104+
103105
public static String generateSecureRandomId() {
104-
return new BigInteger(160, new SecureRandom()).toString(32);
106+
return new BigInteger(160, new SecureRandom()).toString(32).replaceFirst("^[0-9]",
107+
String.valueOf(charset.charAt(new SecureRandom().nextInt(charset.length()))));
105108
}
106109

107110
public static String getValueFromAttributeStatements(final List<AttributeStatement> attributeStatements, final String attributeKey) {

plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/SAMLUtilsTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.security.KeyPair;
2323
import java.security.PrivateKey;
2424
import java.security.PublicKey;
25+
import java.util.regex.Pattern;
2526

2627
import org.apache.cloudstack.saml.SAMLUtils;
2728
import org.apache.cloudstack.utils.security.CertUtils;
@@ -38,6 +39,15 @@ public void testGenerateSecureRandomId() throws Exception {
3839
assertTrue(SAMLUtils.generateSecureRandomId().length() > 0);
3940
}
4041

42+
@Test
43+
public void testGenerateSecureRandomId2() throws Exception {
44+
for (int i = 0; i < 20; i++) {
45+
String randomId = SAMLUtils.generateSecureRandomId();
46+
System.out.println("randomId is " + randomId);
47+
assertTrue(Pattern.compile("^[a-z]").matcher(randomId).find());
48+
}
49+
}
50+
4151
@Test
4252
public void testBuildAuthnRequestObject() throws Exception {
4353
String consumerUrl = "http://someurl.com";

0 commit comments

Comments
 (0)