Skip to content

Commit 372332e

Browse files
committed
changes to support single-sign-on (sso)
1 parent 7ace9f2 commit 372332e

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/main/java/tomcat/request/session/model/SingleSignOnEntry.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
/** author: Ranjith Manickam @ 20 Mar' 2020 */
1717
public class SingleSignOnEntry implements Serializable {
1818

19+
private static final long serialVersionUID = 4590485271396917062L;
20+
1921
private String authType;
2022
private String password;
2123
private Principal principal;
@@ -79,22 +81,20 @@ public synchronized void updateCredentials(Principal principal, String authType,
7981

8082
public void writeObjectData(ObjectOutputStream out) throws IOException {
8183
try (ObjectOutputStream outputStream = new ObjectOutputStream(out)) {
82-
if (this.principal instanceof Serializable) {
83-
outputStream.writeBoolean(true);
84-
outputStream.writeObject(this.principal);
85-
} else {
86-
outputStream.writeBoolean(false);
87-
}
84+
outputStream.writeObject(this);
8885
outputStream.flush();
8986
}
9087
}
9188

9289
public void readObjectData(ObjectInputStream in) throws IOException, ClassNotFoundException {
9390
try (ObjectInputStream inputStream = new ObjectInputStream(in)) {
94-
boolean hasPrincipal = inputStream.readBoolean();
95-
if (hasPrincipal) {
96-
this.principal = (Principal) inputStream.readObject();
97-
}
91+
SingleSignOnEntry entry = (SingleSignOnEntry) inputStream.readObject();
92+
this.authType = entry.authType;
93+
this.password = entry.password;
94+
this.principal = entry.principal;
95+
this.username = entry.username;
96+
this.canReauthenticate = entry.canReauthenticate;
97+
this.sessionKeys.putAll(entry.sessionKeys);
9898
}
9999
}
100100
}

src/main/java/tomcat/request/session/redis/SessionManager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,8 +361,11 @@ void setSingleSignOnEntry(String ssoId, SingleSignOnEntry entry) {
361361
/** To get single-sign-on entry from cache. */
362362
SingleSignOnEntry getSingleSignOnEntry(String ssoId) {
363363
byte[] data = this.dataCache.get(ssoId);
364-
SingleSignOnEntry entry = new SingleSignOnEntry();
364+
if (data == null) {
365+
return null;
366+
}
365367

368+
SingleSignOnEntry entry = new SingleSignOnEntry();
366369
try {
367370
this.serializer.deserializeSingleSignOnEntry(data, entry);
368371
} catch (IOException | ClassNotFoundException ex) {

0 commit comments

Comments
 (0)