Merge pull request #3603 from thomasdarimont/issue/KEYCLOAK-3969-Allow-authentication-via-ScriptAuthenticator-without-user

KEYCLOAK-3969 Allow use of ScriptAuthenticator without user
This commit is contained in:
Bill Burke 2016-12-05 10:19:02 -05:00 committed by GitHub
commit f03d79c7d3
2 changed files with 10 additions and 4 deletions

View file

@ -52,6 +52,10 @@ import java.util.Map;
* </ol>
* </p>
* <p>
* Note that the {@code user} variable is only defined when the user was identified by a preceeding
* authentication step, e.g. by the {@link UsernamePasswordForm} authenticator.
* </p>
* <p>
* Additional context information can be extracted from the {@code context} argument passed to the {@code authenticate(context)}
* or {@code action(context)} function.
* <p>
@ -63,9 +67,10 @@ import java.util.Map;
*
* function authenticate(context) {
*
* LOG.info(script.name + " --> trace auth for: " + user.username);
* var username = user ? user.username : "anonymous";
* LOG.info(script.name + " --> trace auth for: " + username);
*
* if ( user.username === "tester"
* if ( username === "tester"
* && user.getAttribute("someAttribute")
* && user.getAttribute("someAttribute").contains("someValue")) {
*
@ -160,7 +165,7 @@ public class ScriptBasedAuthenticator implements Authenticator {
@Override
public boolean requiresUser() {
return true;
return false;
}
@Override

View file

@ -24,7 +24,8 @@ AuthenticationFlowError = Java.type("org.keycloak.authentication.AuthenticationF
*/
function authenticate(context) {
LOG.info(script.name + " trace auth for: " + user.username);
var username = user ? user.username : "anonymous";
LOG.info(script.name + " trace auth for: " + username);
var authShouldFail = false;
if (authShouldFail) {