Forked from
DM / dm-docs
261 commits behind, 500 commits ahead of the upstream repository.
-
Barbara B. Frosik authoredBarbara B. Frosik authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Session.java 3.12 KiB
package gov.anl.dm.esafsync.serviceconn;
import java.io.Serializable;
import java.net.HttpCookie;
import javax.swing.JOptionPane;
/**
* CDB session class, used for keeping all session-related information (session
* id, username, role, etc.).
*/
public class Session implements Serializable {
public enum Role {
USER("User"),
ADMIN("Administrator");
private final String type;
private Role(String type) {
this.type = type;
}
@Override
public String toString() {
return type;
}
public static Role fromString(String type) {
Role role = null;
switch (type) {
case "User":
role = USER;
break;
case "Administrator":
role = ADMIN;
break;
}
return role;
}
}
private static final long serialVersionUID = 1L;
private String id = null;
private String username = null;
private String cookie = null;
private Role role = null;
public Session() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCookie() {
return cookie;
}
public void setCookie(String cookie) {
this.cookie = cookie;
}
public String verifyCookie() {
if (cookie == null) {
JOptionPane.showMessageDialog(null, "Valid session has not been established.", "Info",JOptionPane.INFORMATION_MESSAGE);
} else {
HttpCookie httpCookie = HttpCookie.parse(cookie).get(0);
if (httpCookie.hasExpired()) {
JOptionPane.showMessageDialog(null, "Session has expired.", "Info",JOptionPane.INFORMATION_MESSAGE);
}
}
return cookie;
}
public boolean isValid() {
if (cookie == null) {
return false;
} else {
HttpCookie httpCookie = HttpCookie.parse(cookie).get(0);
if (httpCookie.hasExpired()) {
return false;
}
}
return true;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public boolean isAdminRole() {
if (role != null) {
return role.equals(Role.ADMIN);
}
return false;
}
public boolean isUserRole() {
if (role != null) {
return role.equals(Role.USER);
}
return false;
}
@Override
public String toString() {
String result = "{ ";
String delimiter = "";
if (username != null) {
result += "username :" + username;
delimiter = "; ";
}
if (id != null) {
result += delimiter + "id : " + id;
delimiter = "; ";
}
if (cookie != null) {
result += delimiter + "cookie : " + cookie;
}
result += " }";
return result;
}
}