Class Configuration
java.lang.Object
page.codeberg.friedolyn.configuration.Configuration
- All Implemented Interfaces:
Copyable<Configuration>
,Redactable
Represents the configuration of the
Friedolyn
application.-
Field Summary
FieldsModifier and TypeFieldDescriptionThe academic degrees that the student is currently pursuing, for example "Bachelor of Science".static final @NonNull String[]
Default file names for the configuration that will be used if no explicit file name is specified.private @NonNull Argon2Configuration
The parameters for the Argon2 hashing algorithm to use when computing theuserHash
,clearnameHash
andemailHash
.private BannedUser
The student represented by this configuration, as an item in thepolled metadata's blacklist
if they are, in fact,banned
.private String
The real name of the student, for example "Edward Snowden".private HashingResult
private @NonNull HashSet
<HashingResult> private @NonNull Client
Options for the HTTP client that will connect to the server.private ContactMethods
How the developers can contact the student, for example if the student has sent an email to the developers.private @NonNull DebugLevel
How verbose the application should be.private @NonNull File
The path to the folder in the file system where the configuration and other application data shall be stored.private jakarta.mail.internet.InternetAddress
The email address of the student used for notifications.private HashingResult
private @NonNull HashSet
<HashingResult> Which of the available PDF files that include the student's grades should be downloaded from Friedolin.private @NonNull File
The path to the file in the file system where the configuration shall be written to.private @NonNull Boolean
Whether the graphical user interface (GUI) of the application should be hidden.private @NonNull Duration
How often the application should fetch the student's grades from the Friedolin server.private static final @NonNull String
The JSON schema that the content of any input passed to thefromFile(File)
method must adhere to.private Notifications
The user's preferences for receiving notifications about their grades.private @NonNull Boolean
When repeatedly fetching the student'sexamPDFs
, should the existing files be deleted and replaced with the new, updated ones? Iffalse
, the current date and time will be prepended to the file names.private char[]
The password (login secret) of the Friedolin account.private @NonNull Boolean
Whether the application should use KeePassXC to retrieve the Friedolin login credentials.private String
The username of the Friedolin account to use, for example "es13nsa".private HashingResult
private @NonNull HashSet
<HashingResult> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
Configuration
(@NonNull String user, char[] password) Creates a new configuration with the given user and password.private
Configuration
(String user, String password, Boolean useKeePassXC) Creates a new configuration with the given user, password and academic degrees. -
Method Summary
Modifier and TypeMethodDescription@NonNull Optional
<HashingResult> Forcibly computes theclearnameHash
and returns it, even if it already exists.@NonNull Optional
<HashingResult> Forcibly computes theemailHash
and returns it, even if it already exists.@NonNull Optional
<HashingResult> Forcibly computes theuserHash
(even if it already exists) and returns it.@NonNull Configuration
copy()
static @NonNull Configuration
Creates a newConfiguration
from a given JSON file.static @NonNull Configuration
Creates a newConfiguration
from a given JSON.getBan()
@NonNull Optional
<HashingResult> @NonNull HashSet
<HashingResult> @NonNull Client
@NonNull Optional
<ContactMethods> @NonNull Optional
<jakarta.mail.internet.InternetAddress> getEmail()
@NonNull File
@NonNull Optional
<HashingResult> @NonNull HashSet
<HashingResult> @NonNull Optional
<Notifications> @NonNull Optional
<char[]> @NonNull Client
@NonNull Optional
<ContactMethods> getUser()
@NonNull Optional
<HashingResult> @NonNull HashSet
<HashingResult> boolean
isBanned()
void
void
Writes this configuration to thefile
inJSON format
.Deprecated.Used only for Jackson deserialisation.private Client
Deprecated.Used only for Jackson deserialisation.private ContactMethods
Deprecated.Used only for Jackson deserialisation.private String
Deprecated.Used only for Jackson deserialisation.Deprecated.Used only for Jackson deserialisation.Deprecated.Used only for Jackson deserialisation.private Long
Deprecated.Used only for Jackson deserialisation.private String
Deprecated.Used only for Jackson deserialisation.private String
Deprecated.Used only for Jackson deserialisation.void
setAcademicDegrees
(@NonNull Set<@NonNull String> academicDegrees) Updates theacademicDegrees
field with the given one.void
setArgon2Configuration
(@NonNull Argon2Configuration argon2Configuration, boolean resetHashes) Updates theargon2Configuration
field with a deep copy of the givenArgon2Configuration
and, optionally, deletes theuserHash
,clearnameHash
andemailHash
fields as well as theuserHashes
,clearnameHashes
andemailHashes
sets.void
setBan
(@NonNull BannedUser ban) void
setClearname
(@NonNull String clearname) Updates theclearname
field with the given one, deletes theclearnameHash
and empties theclearnameHashes
.void
Updates theclient
with the deep copy of a new one.void
setContactMethods
(@NonNull ContactMethods contactMethods) Updates thecontactMethods
field with a deep copy of the given one.private void
setContactMethodsNullable
(ContactMethods contactMethods) Deprecated.This method is only used for Jackson deserialisation.private void
setDebugLevel
(String debugLevel) Updates thedebugLevel
andinvalid reference
Main.debugLevel
void
setDebugLevel
(@NonNull DebugLevel debugLevel) Updates thedebugLevel
andinvalid reference
Main.debugLevel
void
setDirectory
(@NonNull File directory) Updates thedirectory
field with the given one and also saves it into the persistentPreferences
of theFriedolyn
class asdirectory
.void
setEmail
(@NonNull jakarta.mail.internet.InternetAddress email) private void
setExamPDFs
(String[] examPDFs) Deprecated.This method is only used for Jackson deserialisation.void
setExamPDFs
(@NonNull Set<ExamsPDF> examsPdfs) Updates theexamPDFs
field with the given one.void
Updates thefile
field with the given one and also saves it into the persistentPreferences
of theFriedolyn
class asfile
.void
setInterval
(@NonNull Duration interval) Updates theinterval
field with the given one.private void
setIntervalMinutes
(long interval) Deprecated.Used only for Jackson deserialisation.void
setNotifications
(@NonNull Notifications notifications) Updates thenotifications
field with the exact reference of the given one.void
setPassword
(char[] password) Updates thepassword
field with the given one.private void
setPassword
(@NonNull String password) Deprecated.This method is only used for Jackson deserialisation.void
setReferenceToContactMethods
(@NonNull ContactMethods contactMethods) Updates thecontactMethods
field with the exact reference of the given one.void
setUseKeePassXC
(boolean useKeePassXC) Updates the user's preference whether the KeePassXC password manager should be used to retrieve the user's login credentials for Friedolin, i.e.void
Updates theuser
field accordingly.@NonNull String
toJSON()
@NonNull String
toString()
@NonNull String
-
Field Details
-
JSON_SCHEMA
The JSON schema that the content of any input passed to thefromFile(File)
method must adhere to. -
directory
The path to the folder in the file system where the configuration and other application data shall be stored. Defaults toFriedolyn.DEFAULT_ROOT
. -
file
-
user
The username of the Friedolin account to use, for example "es13nsa".- See Also:
-
userHash
- See Also:
-
userHashes
Other
hashes of theuser
field with possiblydifferent
Argon2Configurations
. Used forbanning
users.- See Also:
-
argon2Configuration
The parameters for the Argon2 hashing algorithm to use when computing theuserHash
,clearnameHash
andemailHash
. -
password
@Nullable private char[] passwordThe password (login secret) of the Friedolin account. There is no two-factor authentication. -
clearname
The real name of the student, for example "Edward Snowden".- See Also:
-
clearnameHash
- See Also:
-
clearnameHashes
- See Also:
-
academicDegrees
-
email
@Nullable private jakarta.mail.internet.InternetAddress emailThe email address of the student used for notifications.- See Also:
-
emailHash
- See Also:
-
emailHashes
Other
hashes of theemail
field with possiblydifferent
Argon2Configurations
. Used forbanning
users.- See Also:
-
examPDFs
-
overwriteExistingExamsPDFs
-
interval
How often the application should fetch the student's grades from the Friedolin server. Defaults toFriedolyn.DEFAULT_INTERVAL
. Must be at leastFriedolyn.MINIMUM_INTERVAL
and at mostFriedolyn.MAXIMUM_INTERVAL
. -
client
Options for the HTTP client that will connect to the server. -
contactMethods
How the developers can contact the student, for example if the student has sent an email to the developers. -
debugLevel
How verbose the application should be. Defaults toDebugLevel.WARN
. -
hideGraphicalUserInterface
Whether the graphical user interface (GUI) of the application should be hidden. Defaults tofalse
. This has nothing to do with theHeadlessBrowser
. -
useKeePassXC
Whether the application should use KeePassXC to retrieve the Friedolin login credentials. Defaults tofalse
. If true, theuser
andpassword
fields may be null; then they need to be requested from KeePassXC by callingKeePassXC.getFriedolinLogins()
. This might fail though, then the application should just throw an exception. -
notifications
The user's preferences for receiving notifications about their grades. -
ban
The student represented by this configuration, as an item in thepolled metadata's blacklist
if they are, in fact,banned
. -
ALLOWED_CONFIGURATION_FILENAMES
Default file names for the configuration that will be used if no explicit file name is specified.
-
-
Constructor Details
-
Configuration
public Configuration(@NonNull @NonNull String user, char[] password) throws IllegalArgumentException Creates a new configuration with the given user and password.- Parameters:
user
- The username of the Friedolin account to use, for example "es13nsa".password
- The password of the Friedolin account.- Throws:
IllegalArgumentException
- If the user is empty or if the password is null or empty.
-
Configuration
private Configuration(@Nullable String user, @Nullable String password, @Nullable Boolean useKeePassXC) throws IllegalArgumentException Creates a new configuration with the given user, password and academic degrees.This constructor only exists for
fromFile(File)
to work properly (when no directory is specified in the configuration file).- Parameters:
user
- The username of the Friedolin account to use, for example "es13nsa". Must not be empty.password
- The password of the Friedolin account. Will be stored as achar[]
for security reasons. Must not be empty.- Throws:
IllegalArgumentException
- SeesetUser(String)
,setPassword(char[])
.
-
Configuration
private Configuration()Creates a new configuration without auser
and without apassword
. This constructor is only to be used by thecopy()
method in the case that the currently setuser
andpassword
fields are null (this is the case whenuseKeePassXC
is set totrue
).All other callers are obliged to provide login credentials via
Configuration(String, char[])
. If they want to use KeePassXC, they have no choice but to retrieve the login credentials from KeePassXC before creating the configuration.
-
-
Method Details
-
setUser
Updates theuser
field accordingly. If thecontactMethods
field is already set, itsuser
field will be updated as well, otherwise a newContactMethods
object will be created with the given user. If the new user name not equal to the current one, theuserHash
field will be deleted.- Parameters:
user
- The username of the Friedolin account to use, for example "es13nsa". Must not be empty.- Throws:
IllegalArgumentException
- If the user is empty.
-
setArgon2Configuration
public void setArgon2Configuration(@NonNull @NonNull Argon2Configuration argon2Configuration, boolean resetHashes) Updates theargon2Configuration
field with a deep copy of the givenArgon2Configuration
and, optionally, deletes theuserHash
,clearnameHash
andemailHash
fields as well as theuserHashes
,clearnameHashes
andemailHashes
sets. Does nothing if the given configuration isequal
to the current one. -
computeUserHash
Forcibly computes theuserHash
(even if it already exists) and returns it. Adds the hash to theuserHashes
set if it is not already present.- Returns:
- The Argon2 hash of the
user name
field. Empty if the user name is not set.
-
computeClearnameHash
Forcibly computes theclearnameHash
and returns it, even if it already exists. Adds the hash to theclearnameHashes
set if it is not already present.- Returns:
- The Argon2 hash of the
clear name
field. Empty if the clear name is not set.
-
computeEmailHash
Forcibly computes theemailHash
and returns it, even if it already exists. Adds the hash to theemailHashes
set if it is not already present.- Returns:
- The Argon2 hash of the
email
field. Empty if the email is not set.
-
setPassword
public void setPassword(char[] password) Updates thepassword
field with the given one.- Parameters:
password
- The password of the student's Friedolin account.- Throws:
IllegalArgumentException
- If the password is empty.
-
setPassword
@Deprecated private void setPassword(@NonNull @NonNull String password) throws IllegalArgumentException Deprecated.This method is only used for Jackson deserialisation. UsesetPassword(char[])
instead.Updates thepassword
field with the given one.- Parameters:
password
- The password of the Friedolin account. Will be stored as achar[]
for security reasons. Must not be empty.- Throws:
IllegalArgumentException
- If the password is empty.- See Also:
-
setAcademicDegrees
public void setAcademicDegrees(@NonNull @NonNull Set<@NonNull String> academicDegrees) throws IllegalArgumentException Updates theacademicDegrees
field with the given one.- Parameters:
academicDegrees
- The academic degrees that the student is currently pursuing, for example "Abschluss 82 Bachelor of Science". Must not be empty. Must not contain null or blank strings.- Throws:
IllegalArgumentException
- If the set is empty or if there's a null or blank academic degrees in the given set.
-
setEmail
public void setEmail(@NonNull @NonNull jakarta.mail.internet.InternetAddress email) throws IllegalArgumentException Updates theemail
field with the given one, deletes theemailHash
and empties theemailHashes
. Does nothing if the new e-mailequals
the current one.- Parameters:
email
- The email address of the student used for notifications. Must be a valid university email address, for exampleedward.snowden@uni-jena.de
.- Throws:
IllegalArgumentException
- If the email is not a valid university email address.
-
setClearname
Updates theclearname
field with the given one, deletes theclearnameHash
and empties theclearnameHashes
. Does nothing if the new clear nameequals
the current one.- Parameters:
clearname
- The real name of the student, for example "Edward Snowden". Must not be empty.- Throws:
IllegalArgumentException
- If the clear name is empty.
-
resetClearname
public void resetClearname() -
setDirectory
Updates thedirectory
field with the given one and also saves it into the persistentPreferences
of theFriedolyn
class asdirectory
.- Parameters:
directory
- The directory to use for the configuration. Must exist and be readable and writable.- Throws:
IllegalArgumentException
- If the directory is null, does not exist, is not a directory, is not readable or is not writable.
-
setFile
Updates thefile
field with the given one and also saves it into the persistentPreferences
of theFriedolyn
class asfile
.- Parameters:
file
- The path that the configuration should be written to. Not required to exist. If it exists, it must be a file (not a directory), readable and writable.- Throws:
IllegalArgumentException
- If the file exists but- is not a file,
- is not readable or
- is not writable.
-
setIntervalMinutes
Deprecated.Used only for Jackson deserialisation. UsesetInterval(Duration)
instead.- Parameters:
interval
- Theinterval
inminutes
. Must be at leastFriedolyn.MINIMUM_INTERVAL
and at mostFriedolyn.MAXIMUM_INTERVAL
.- Throws:
IllegalArgumentException
- If the interval is less thanFriedolyn.MINIMUM_INTERVAL
or greater thanFriedolyn.MAXIMUM_INTERVAL
.
-
setInterval
Updates theinterval
field with the given one.- Parameters:
interval
- How often the application should fetch the student's grades from the Friedolin server. Must be at leastFriedolyn.MINIMUM_INTERVAL
and at mostFriedolyn.MAXIMUM_INTERVAL
.- Throws:
IllegalArgumentException
- If the interval is less thanFriedolyn.MINIMUM_INTERVAL
or greater thanFriedolyn.MAXIMUM_INTERVAL
.
-
setDebugLevel
Updates thedebugLevel
andinvalid reference
Main.debugLevel
- Parameters:
debugLevel
- How verbose the application should be.
-
setDebugLevel
Updates thedebugLevel
andinvalid reference
Main.debugLevel
- Parameters:
debugLevel
- How verbose the application should be. If it is null or does not match any member of theDebugLevel
enum, the field will not be updated.
-
setExamPDFs
Updates theexamPDFs
field with the given one.- Parameters:
examsPdfs
- Which of the available PDF files that include the student's grades should be downloaded from Friedolin.- Implementation Note:
Lombok
refuses to generate aSetter
because ofsetExamPDFs(String[])
.
-
setExamPDFs
Deprecated.This method is only used for Jackson deserialisation. UsesetExamPDFs(Set)
instead.Updates theexamPDFs
field with the given one.- Parameters:
examPDFs
- Which of the available PDF files that include the student's grades should be downloaded from Friedolin. Will be treated as an empty set if it is null or if the only item is null or empty. All non-null non-empty items must be valid members of theExamsPDF
enum.- Throws:
IllegalArgumentException
- If any of the given non-null non-empty strings is not a member of theExamsPDF
enum.
-
setClient
-
getClient
-
getReferenceToClient
- Returns:
- The actual object reference of the
client
field. Only use this method if you are sure that you actually need the reference. If you only need to read the data in it, usegetClient()
instead.
-
serialiseClient
Deprecated.Used only for Jackson deserialisation. UsegetClient()
instead.- Returns:
- The
client
if it's not thedefault one
,null
otherwise.
-
getNotifications
- Returns:
- A deep copy of the current
notifications
(does NOT return the actual reference, for security reasons).
-
getContactMethods
- Returns:
- A deep copy of the current
contactMethods
(does NOT return the actual reference, for security reasons). UsegetReferenceToContactMethods()
if you need the actual reference. - See Also:
-
serialiseContactMethods
Deprecated.Used only for Jackson deserialisation. UsegetContactMethods()
instead.- Returns:
- The
contactMethods
if they're not thedefault ones
,null
otherwise.
-
setContactMethods
Updates thecontactMethods
field with a deep copy of the given one.- Parameters:
contactMethods
- The user's preferences for being contacted by the developers.
-
setReferenceToContactMethods
Updates thecontactMethods
field with the exact reference of the given one.- Parameters:
contactMethods
- The user's preferences for being contacted by the developers.
-
setContactMethodsNullable
Deprecated.This method is only used for Jackson deserialisation. UsesetContactMethods(ContactMethods)
instead.Updates thecontactMethods
field with the given one.- Parameters:
contactMethods
- The user's preferences for being contacted by the developers. If null, will be ignored.
-
setNotifications
public void setNotifications(@NonNull @NonNull Notifications notifications) throws IllegalArgumentException Updates thenotifications
field with the exact reference of the given one.- Parameters:
notifications
- The user's preferences for receiving notifications about their grades.- Throws:
IllegalArgumentException
- If no notifier is set.
-
getReferenceToContactMethods
- Returns:
- The actual object reference of the
contactMethods
field. Only use this method if you are sure that you actually need the reference. If you only need to read the data in it, usegetContactMethods()
instead. - See Also:
-
getEmailDirectory
- Returns:
- The directory in the file system where copies of all e-mails sent by the user to the developers shall
be stored. It is NOT guaranteed that the directory exists! The directory is called
emails
and is located in theFriedolyn directory root
, such as~/.friedolyn/emails
.
-
getUser
- Returns:
- The username of the student's Friedolin account. May be empty if
useKeePassXC
is set totrue
. In that case, the username needs to be retrieved from the KeePassXC password manager. UseKeePassXC.getFriedolinLogins()
for that. - See Also:
-
getUserHash
-
getUserHashes
- Returns:
- A deep copy of the current
argon2Configuration
(does NOT return the actual reference, for security reasons).
-
getClearnameHash
-
getClearnameHashes
- Returns:
- A deep copy of the current
clearnameHashes
(does NOT return the actual reference, for security reasons).
-
getEmailHash
-
getEmailHashes
- Returns:
- A deep copy of the current
emailHashes
(does NOT return the actual reference, for security reasons).
-
isBanned
-
getBan
- Returns:
- The user represented by this configuration as a
BannedUser
if they arebanned
, empty if they are not banned.
-
setBan
-
getPassword
- Returns:
- The password of the Friedolin account. May be empty if
useKeePassXC
is set totrue
. In that case, the password needs to be retrieved from the KeePassXC password manager. UseKeePassXC.getFriedolinLogins()
for that. - See Also:
-
serialiseUser
Deprecated.Used only for Jackson deserialisation. UsegetUser()
instead.- Returns:
- The
user
name ifuseKeePassXC
is set tofalse
,null
otherwise.
-
serialisePassword
Deprecated.Used only for Jackson deserialisation. UsegetPassword()
instead.- Returns:
- The
password
ifuseKeePassXC
is set tofalse
,null
otherwise.
-
serialiseAcademicDegrees
Deprecated.Used only for Jackson deserialisation. Useinvalid reference
#getAcademicDegrees()
- Returns:
- The
academicDegrees
if they're not the default ones,null
otherwise. - Implementation Note:
- If two sets A and B are equal, then every element of A is also an element of B and vice versa. If we remove all B elements from A (and vice versa) and then both sets are empty, we know that they contained the exact same elements, i.e. they were equal.
-
serialiseExamsPDFs
Deprecated.Used only for Jackson deserialisation. Useinvalid reference
#getExamPDFs()
- Returns:
- The
examPDFs
if they're not the default ones,null
otherwise. - Implementation Note:
- If two sets A and B are equal, then every element of A is also an element of B and vice versa. If we remove all B elements from A (and vice versa) and then both sets are empty, we know that they contained the exact same elements, i.e. they were equal.
-
serialiseInterval
Deprecated.Used only for Jackson deserialisation. Useinvalid reference
#getInterval()
- Returns:
- The
interval
if it's not the default one,null
otherwise.
-
serialiseDebugLevel
Deprecated.Used only for Jackson deserialisation. Useinvalid reference
#getDebugLevel()
- Returns:
- The
debugLevel
if it's not the default one,null
otherwise.
-
getClearname
- Returns:
- The
real name of the student
as indicated in the University of Jena's Friedolin system, for exampleEdward Snowden
. Empty if it has not been fetched yet.
-
getEmail
- Returns:
- The student's university e-mail address as indicated by the Friedolin system, for example
edward.snowden@uni -jena.de
. Empty if it has not been fetched yet.
-
serialiseEmail
Deprecated.Used only for Jackson deserialisation. UsegetEmail()
instead.- Returns:
- The
email
address if it's not the default one,null
otherwise.
-
setUseKeePassXC
public void setUseKeePassXC(boolean useKeePassXC) Updates the user's preference whether the KeePassXC password manager should be used to retrieve the user's login credentials for Friedolin, i.e.user
andpassword
. If this is set totrue
, theuser
andpassword
fields will not be included in theJSON representation
of this configuration.- Parameters:
useKeePassXC
-true
if KeePassXC should be used,false
otherwise.- See Also:
-
saveToFile
Writes this configuration to thefile
inJSON format
. Does not care if the file already exists, it will be overwritten if it does. If necessary, all parent directories of the file will be created.- Throws:
IOException
- If thefile
cannot be written to.SecurityException
-
fromFile
@NonNull public static @NonNull Configuration fromFile(File file) throws IOException, com.fasterxml.jackson.core.exc.StreamReadException, com.fasterxml.jackson.databind.DatabindException, IllegalArgumentException, SecurityException, OutOfMemoryError, InvalidPathException Creates a newConfiguration
from a given JSON file.- Parameters:
file
- The JSON file that contains the properties of theConfiguration
to be created. Must be a valid JSON file. Required properties:-
user
(String): The username of the Friedolin account to use, for example "es13nsa". password
(String): The password of the Friedolin account.-
academicDegrees
(String): The academic degrees that the student is currently pursuing, for example "Abschluss 82 Bachelor of Science".
directory
of the configuration. If that is not possible, then~/.friedolyn
will be used. (UsesetDirectory(File)
if you don't like that location.)For more information on how the JSON file must be formatted, see the JSON schema.
-
- Returns:
- The configuration created from the given file.
- Throws:
IOException
- SeeObjectMapper.readValue(File, Class)
.com.fasterxml.jackson.core.exc.StreamReadException
- SeeObjectMapper.readValue(File, Class)
.com.fasterxml.jackson.databind.DatabindException
- SeeObjectMapper.readValue(File, Class)
.IllegalArgumentException
- If the configuration does not include adirectory
, but the file's parent directory and the default directory are both invalid.SecurityException
OutOfMemoryError
InvalidPathException
-
fromJSON
@NonNull public static @NonNull Configuration fromJSON(String json) throws IOException, IllegalArgumentException, SecurityException, OutOfMemoryError Creates a newConfiguration
from a given JSON.- Parameters:
json
- The JSON string that represents aConfiguration
. Required properties:-
user
(String): The username of the Friedolin account to use, for example "es13nsa". password
(String): The password of the Friedolin account.-
academicDegrees
(String): The academic degrees that the student is currently pursuing, for example "Abschluss 82 Bachelor of Science".
-
- Returns:
- The configuration created from the given JSON.
- Throws:
IllegalArgumentException
- If the JSON does not adhere to the schema or ifuseKeePassXC
is set to false, but nopassword
is specified.IOException
- SeeObjectMapper.readValue(String, Class)
.SecurityException
- SeeValidatorFactory.validate(String, String)
.OutOfMemoryError
- SeeObjectMapper.readValue(String, Class)
.
-
copy
- Specified by:
copy
in interfaceCopyable<Configuration>
- Returns:
- A deep copy of this configuration, i.e. a new instance with the same properties but different references.
-
toJSON
-
toString
- Specified by:
toString
in interfaceRedactable
- Overrides:
toString
in classObject
- Returns:
- A string representation of this configuration with all its properties, including sensitive data.
- See Also:
-
toStringRedacted
- Specified by:
toStringRedacted
in interfaceRedactable
- Returns:
- A string representation of this configuration with all its properties. Sensitive data will be redacted
according to the policy specified by the
debugLevel
. - See Also:
-