io.vertx.ext.jwt.JWTOptions Maven / Gradle / Ivy
package io.vertx.ext.jwt;
import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@DataObject(generateConverter = true)
public class JWTOptions {
private static final JsonObject EMPTY = new JsonObject(Collections.emptyMap());
private int leeway = 0;
private boolean ignoreExpiration;
private String algorithm = "HS256";
private JsonObject header = EMPTY;
private boolean noTimestamp;
private int expiresInSeconds;
private List audience;
private String issuer;
private String subject;
private List permissions;
public JWTOptions() {
}
public JWTOptions(JsonObject json) {
JWTOptionsConverter.fromJson(json, this);
}
public JsonObject toJSON() {
final JsonObject json = new JsonObject();
JWTOptionsConverter.toJson(this, json);
return json;
}
public int getLeeway() {
return leeway;
}
public JWTOptions setLeeway(int leeway) {
this.leeway = leeway;
return this;
}
public boolean isIgnoreExpiration() {
return ignoreExpiration;
}
public JWTOptions setIgnoreExpiration(boolean ignoreExpiration) {
this.ignoreExpiration = ignoreExpiration;
return this;
}
public String getAlgorithm() {
return algorithm;
}
public JWTOptions setAlgorithm(String algorithm) {
this.algorithm = algorithm;
return this;
}
public JsonObject getHeader() {
return header;
}
public JWTOptions setHeader(JsonObject header) {
this.header = header;
return this;
}
public boolean isNoTimestamp() {
return noTimestamp;
}
public JWTOptions setNoTimestamp(boolean noTimestamp) {
this.noTimestamp = noTimestamp;
return this;
}
public int getExpiresInSeconds() {
return expiresInSeconds;
}
public JWTOptions setExpiresInSeconds(int expiresInSeconds) {
this.expiresInSeconds = expiresInSeconds;
return this;
}
public JWTOptions setExpiresInMinutes(int expiresInMinutes) {
this.expiresInSeconds = expiresInMinutes * 60;
return this;
}
public List getAudience() {
return audience;
}
public JWTOptions setAudience(List audience) {
this.audience = audience;
return this;
}
public JWTOptions addAudience(String audience) {
if (this.audience == null) {
this.audience = new ArrayList<>();
}
this.audience.add(audience);
return this;
}
public String getIssuer() {
return issuer;
}
public JWTOptions setIssuer(String issuer) {
this.issuer = issuer;
return this;
}
public String getSubject() {
return subject;
}
public JWTOptions setSubject(String subject) {
this.subject = subject;
return this;
}
/**
* The permissions of this token.
*
* @param permissions the permissions for this token that will be used for AuthZ
* @return fluent API
*/
public JWTOptions setPermissions(List permissions) {
this.permissions = permissions;
return this;
}
/**
* Add a permission to this token.
*
* @param permission permission for this token that will be used for AuthZ
* @return fluent API
*/
public JWTOptions addPermission(String permission) {
if (this.permissions == null) {
this.permissions = new ArrayList<>();
}
this.permissions.add(permission);
return this;
}
public List getPermissions() {
return permissions;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy