summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java b/src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java
index 228d793..4416647 100644
--- a/src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java
+++ b/src/main/java/org/openslx/imagemaster/localrpc/NetworkHandler.java
@@ -13,6 +13,7 @@ import java.util.concurrent.LinkedBlockingQueue;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.openslx.bwlp.thrift.iface.ClientSessionData;
+import org.openslx.bwlp.thrift.iface.TAuthorizationException;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.imagemaster.session.Session;
import org.openslx.imagemaster.session.SessionManager;
@@ -125,13 +126,19 @@ public class NetworkHandler implements Runnable
{
try {
JsonUser ju = gson.fromJson( payload, JsonUser.class );
- UserInfo u = ju.toUser();
- if ( u == null ) {
- log.warn( "Invalid or inomplete RPC data (" + payload + ")" );
- return "Invalid or incomplete RPC data";
+ TAuthorizationException ex = ju.toException();
+ if ( ex != null ) {
+ SessionManager.addAuthError( ex, ju.accessCode() );
+ return "Auth error";
+ } else {
+ UserInfo u = ju.toUser();
+ if ( u == null ) {
+ log.warn( "Invalid or inomplete RPC data (" + payload + ")" );
+ return "Invalid or incomplete RPC data";
+ }
+ ClientSessionData sd = SessionManager.addSession( new Session( u ), ju.accessCode() );
+ return "TOKEN:" + sd.authToken + " SESSIONID:" + sd.sessionId;
}
- ClientSessionData sd = SessionManager.addSession( new Session( u ) );
- return "TOKEN:" + sd.authToken + " SESSIONID:" + sd.sessionId;
} catch ( Throwable t ) {
log.error( "Exception on json decode", t );
}