134 String displayName = realm.getDisplayName() != null && !realm.getDisplayName().isEmpty() ? realm.getDisplayName() : realm.getName();
136 String accountName = URLEncoder.encode(user.getUsername(),
"UTF-8");
137 String issuerName = URLEncoder.encode(displayName,
"UTF-8") .replaceAll(
"\\+",
"%20");
144 String label = issuerName +
":" + accountName;
146 String parameters =
"secret=" + Base32.encode(secret.getBytes())
149 +
"&issuer=" + issuerName;
151 if (
type.equals(UserCredentialModel.HOTP)) {
153 }
else if (
type.equals(UserCredentialModel.TOTP)) {
154 parameters +=
"&period=" +
period;
157 return "otpauth://" +
type +
"/" + label+
"?" + parameters;
158 }
catch (UnsupportedEncodingException e) {
159 throw new RuntimeException(e);
int initialCounter
Definition: OTPPolicy.java:42
int digits
Definition: OTPPolicy.java:43
int period
Definition: OTPPolicy.java:45
String algorithm
Definition: OTPPolicy.java:41
static final Map< String, String > algToKeyUriAlg
Definition: OTPPolicy.java:47
String type
Definition: OTPPolicy.java:40