Author: jleroux
Date: Fri Mar 16 10:02:03 2018
New Revision: 1826949
URL: http://svn.apache.org/viewvc?rev=1826949&view=rev
Log:
Improved: Token Based Authentication
(OFBIZ-9833)
Removes the code I temporarily removed on trunk demo (controversial) to test my
changes
Also adds the LoginWorker.autoLoginSet()
This is just a commit to go ahead, later I will revert all related and provide
a patch for discussion at OFBIZ-9833.
I'll also certainly use Deepak's JWTManager.createJwt() instead of mine, it's
more general and I actually only need to pass the userLoginId. We have though
to discuss that anyway, I see some differences...
Modified:
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
Modified:
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java?rev=1826949&r1=1826948&r2=1826949&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
(original)
+++
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ExternalLoginKeysManager.java
Fri Mar 16 10:02:03 2018
@@ -32,7 +32,6 @@ import javax.servlet.http.HttpSession;
import javax.xml.bind.DatatypeConverter;
import org.apache.ofbiz.base.util.Debug;
-import org.apache.ofbiz.base.util.UtilHttp;
import org.apache.ofbiz.entity.Delegator;
import org.apache.ofbiz.entity.DelegatorFactory;
import org.apache.ofbiz.entity.GenericEntityException;
@@ -186,18 +185,13 @@ public class ExternalLoginKeysManager {
Delegator delegator = (Delegator) request.getAttribute("delegator");
HttpSession session = request.getSession();
- // The target server does not allow external login by default
- boolean useExternalServer =
EntityUtilProperties.getPropertyAsBoolean("security", "use-external-server",
false);
- String sourceWebappName =
request.getParameter(SOURCE_SERVER_WEBAPP_NAME);
- if (!useExternalServer || sourceWebappName == null) return "success";
// Nothing to do here
-
try {
String userLoginId = null;
String authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader != null) {
Claims claims = returnsClaims(authorizationHeader);
userLoginId = getSourceUserLoginId(claims );
- boolean jwtOK = checkJwt(authorizationHeader, userLoginId,
getTargetServerUrl(request), UtilHttp.getApplicationName(request));
+ boolean jwtOK = checkJwt(authorizationHeader, userLoginId, "",
"");
if (!jwtOK) {
// Something unexpected happened here
Debug.logWarning("*** There was a problem with the JWT
token, not signin in the user login " + userLoginId, module);
@@ -234,6 +228,9 @@ public class ExternalLoginKeysManager {
Debug.logError(e, "Cannot get autoUserLogin information: " +
e.getMessage(), module);
}
+ // make sure the autoUserLogin is set to the same and that the client
cookie has the correct userLoginId
+ LoginWorker.autoLoginSet(request, response);
+
return "success";
}