Package com.authlete.common.util
Class UserCodeGenerator
- java.lang.Object
-
- com.authlete.common.util.UserCodeGenerator
-
public class UserCodeGenerator extends Object
Generator for end-user verification codes (user_code) in Device Flow. See "6.1. User Code Recommendations" of RFC 8628 OAuth 2.0 Device Authorization Grant for recommendations for user code values.// The simplest example String userCode = new UserCodeGenerator().
generate(); // The longest example String userCode = new UserCodeGenerator() .setCharacters(UserCodeCharset.BASE20) .setLength(8) .setRandom(new SecureRandom()) .generate();- Since:
- 2.43
- See Also:
- RFC 8628 OAuth 2.0 Device Authorization Grant
-
-
Constructor Summary
Constructors Constructor Description UserCodeGenerator()Constructor.UserCodeGenerator(int length)Constructor.UserCodeGenerator(UserCodeCharset charset)Constructor.UserCodeGenerator(UserCodeCharset charset, int length)Constructor.UserCodeGenerator(UserCodeCharset charset, int length, Random random)Constructor.UserCodeGenerator(String characters)Constructor.UserCodeGenerator(String characters, int length)Constructor.UserCodeGenerator(String characters, int length, Random random)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Stringgenerate()Generate a user code.StringgetCharacters()Get the characters that may appear in generated user codes.intgetLength()Get the length of generated user codes.RandomgetRandom()Get theRandominstance used for user code generation.UserCodeGeneratorsetCharacters(UserCodeCharset charset)Set characters that may appear in generated user codes.UserCodeGeneratorsetCharacters(String characters)Set characters that may appear in generated user codes.UserCodeGeneratorsetLength(int length)Set length of generated user codes.UserCodeGeneratorsetRandom(Random random)Set aRandominstance used for user code generation.
-
-
-
Constructor Detail
-
UserCodeGenerator
public UserCodeGenerator()
Constructor.
-
UserCodeGenerator
public UserCodeGenerator(String characters)
Constructor.- Parameters:
characters- Characters that may appear in generated user codes.
-
UserCodeGenerator
public UserCodeGenerator(int length)
Constructor.- Parameters:
length- Length of generated user codes.
-
UserCodeGenerator
public UserCodeGenerator(String characters, int length)
Constructor.- Parameters:
characters- Characters that may appear in generated user codes.length- Length of generated user codes.
-
UserCodeGenerator
public UserCodeGenerator(String characters, int length, Random random)
Constructor.- Parameters:
characters- Characters that may appear in generated user codes.length- Length of generated user codes.random- ARandominstance used for user code generation.
-
UserCodeGenerator
public UserCodeGenerator(UserCodeCharset charset)
Constructor.- Parameters:
charset- A character set for user codes. The value returned fromcharset.getCharacters()is used unlesscharsetisnull.
-
UserCodeGenerator
public UserCodeGenerator(UserCodeCharset charset, int length)
Constructor.- Parameters:
charset- A character set for user codes. The value returned fromcharset.getCharacters()is used unlesscharsetisnull.length- Length of generated user codes.
-
UserCodeGenerator
public UserCodeGenerator(UserCodeCharset charset, int length, Random random)
Constructor.- Parameters:
charset- A character set for user codes. The value returned fromcharset.getCharacters()is used unlesscharsetisnull.length- Length of generated user codes.random- ARandominstance used for user code generation.
-
-
Method Detail
-
getCharacters
public String getCharacters()
Get the characters that may appear in generated user codes.- Returns:
- The characters that may appear in generated user codes.
-
setCharacters
public UserCodeGenerator setCharacters(String characters)
Set characters that may appear in generated user codes.- Parameters:
characters- Characters that may appear in generated user codes.- Returns:
thisobject.
-
setCharacters
public UserCodeGenerator setCharacters(UserCodeCharset charset)
Set characters that may appear in generated user codes. The value returned fromcharset.getCharacters()is used as characters for generated user codes unlesscharsetisnull.- Parameters:
charset- A character set for user codes.- Returns:
thisobject.
-
getLength
public int getLength()
Get the length of generated user codes.- Returns:
- The length of generated user codes.
-
setLength
public UserCodeGenerator setLength(int length)
Set length of generated user codes.- Parameters:
length- Length of generated user codes.- Returns:
thisobject.
-
getRandom
public Random getRandom()
Get theRandominstance used for user code generation.- Returns:
- The
Randominstance user for user code generation.
-
setRandom
public UserCodeGenerator setRandom(Random random)
Set aRandominstance used for user code generation.- Parameters:
random- ARandominstance used for user code generation.- Returns:
thisobject.
-
generate
public String generate()
Generate a user code.If characters for user codes are not set, the value returned from
UserCodeCharset.BASE20.getCharacters()(namely,"BCDFGHJKLMNPQRSTVWXZ") is used.If length is not set or its value is 0 or less, proper length is computed based on the characters and used.
If a
Randominstance is not set, a new instance ofSecureRandomis created and used.- Returns:
- A newly-generated user code.
-
-