Vlada
Vlada

Reputation: 667

WildFly 10 running on Windows with kerberos authentication

I have to configure wildfly 10 to support SSO against Microsoft Active Directory. Server is running at Windows Server 2012 R2.

I have tried several configurations and recommendations found by google.

Each time I get

PBOX00206: Login failure: javax.security.auth.login.LoginException: Continuation Required.

This doesn't have to be error, because it is displayed only when DEBUG is on.

Web browser gets 401 - Unauthorized.

I get stuck on it.

Do you have any idea what's wrong or what I can do now?


standalone.xml (parts only)

<system-properties>
  <property name="jboss.security.disable.secdomain.option" value="true" />
  <property name="sun.security.krb5.debug" value="true" />
  <property name="java.security.krb5.kdc" value="dns.xxx.cz" />
  <property name="java.security.krb5.realm" value="XXX.CZ" />
  <property name="java.security.krb5.conf" value="d:\\krb5.conf" />
</system-properties>

<security-domain name="host" cache-type="default">
  <authentication>
    <login-module code="Kerberos" flag="required">
      <module-option name="debug" value="true"/>
      <module-option name="storeKey" value="true"/>
      <module-option name="refreshKrb5Config" value="true"/>
      <module-option name="useKeyTab" value="true"/>
      <module-option name="doNotPrompt" value="true"/>
      <module-option name="keytab" value="d:\\web.keytab"/>
      <module-option name="principal" value="HTTP/[email protected]"/>
    </login-module>
  </authentication>
</security-domain>

<security-domain name="SPNEGO" cache-type="default">
  <authentication>
    <login-module code="SPNEGOUsers" flag="required">
      <module-option name="password-stacking" value="useFirstPass"/>
      <module-option name="serverSecurityDomain" value="host"/>
    </login-module>
    <login-module code="AdvancedLdap" flag="requisite">
      <module-option name="jaasSecurityDomain" value="host"/>
      <module-option name="password-stacking" value="useFirstPass"/>
      <module-option name="java.naming.security.authentication" value="simple"/>
      <module-option name="java.naming.provider.url" value="ldap://192.168.1.1:3268"/>
      <module-option name="bindDN" value="CN=svc,DC=xxx,DC=cz"/>
      <module-option name="bindCredential" value="password"/>
      <module-option name="baseCtxDN" value="DC=xxx,DC=cz"/>
      <module-option name="baseFilter" value="(userPrincipalName={0})"/>
      <module-option name="rolesCtxDN" value="DC=xxx,DC=cz"/>
      <module-option name="roleAttributeIsDN" value="true"/>
      <module-option name="roleAttributeID" value="memberOf"/>
      <module-option name="roleNameAttributeID" value="cn"/>
      <module-option name="recurseRoles" value="true"/>
      <module-option name="allowEmptyPassword" value="false"/>
    </login-module>
  </authentication>
</security-domain>

WildFly output

 2016-03-29 13:51:26,011 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) removeRealmFromPrincipal=false
 2016-03-29 13:51:26,026 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) serverSecurityDomain=host
 2016-03-29 13:51:26,026 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) usernamePasswordDomain=null
 2016-03-29 13:51:26,026 INFO  [stdout] (default task-4) Debug is  true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is HTTP/[email protected] tryFirstPass is false useFirstPass is false storePass is false clearPass is false
 2016-03-29 13:51:26,026 INFO  [stdout] (default task-4) Java config name: d:\\krb5.conf
 2016-03-29 13:51:26,026 INFO  [stdout] (default task-4) Loaded from Java config
 2016-03-29 13:51:26,026 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): xxx.CZ
 2016-03-29 13:51:26,026 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): HTTP
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): server.xxx.cz
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTab: load() entry length: 55; type: 1
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): xxx.CZ
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): HTTP
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): server.xxx.cz
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTab: load() entry length: 55; type: 3
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): xxx.CZ
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): HTTP
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): server.xxx.cz
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTab: load() entry length: 63; type: 23
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): xxx.CZ
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): HTTP
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): server.xxx.cz
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTab: load() entry length: 79; type: 18
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): xxx.CZ
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): HTTP
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTabInputStream, readName(): server.xxx.cz
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) >>> KeyTab: load() entry length: 63; type: 17
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) Looking for keys for: HTTP/[email protected]
 2016-03-29 13:51:26,042 INFO  [stdout] (default task-4) Added key: 17version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Added key: 18version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Added key: 23version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Found unsupported keytype (3) for HTTP/[email protected]
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Found unsupported keytype (1) for HTTP/[email protected]
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) >>> KdcAccessibility: reset
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Looking for keys for: HTTP/[email protected]
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Added key: 17version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Added key: 18version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Added key: 23version: 4
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Found unsupported keytype (3) for HTTP/[email protected]
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) Found unsupported keytype (1) for HTTP/[email protected]
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) default etypes for default_tkt_enctypes: 23 18 17 16.
 2016-03-29 13:51:26,058 INFO  [stdout] (default task-4) >>> KrbAsReq creating message
 2016-03-29 13:51:26,073 INFO  [stdout] (default task-4) >>> KrbKdcReq send: kdc=adsrv.xxx.cz UDP:88, timeout=30000, number of retries =3, #bytes=145
 2016-03-29 13:51:26,073 INFO  [stdout] (default task-4) >>> KDCCommunication: kdc=adsrv.xxx.cz UDP:88, timeout=30000,Attempt =1, #bytes=145
 2016-03-29 13:51:26,073 INFO  [stdout] (default task-4) >>> KrbKdcReq send: #bytes read=182
 2016-03-29 13:51:26,073 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,073 INFO  [stdout] (default task-4)     PA-DATA type = 19
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-ETYPE-INFO2 etype = 18, salt = XXX.CZHTTPserver.xxx.cz, s2kparams = null
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-ETYPE-INFO2 etype = 23, salt = null, s2kparams = null
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-DATA type = 2
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-ENC-TIMESTAMP
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-DATA type = 16
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     PA-DATA type = 15
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>> KdcAccessibility: remove adsrv.xxx.cz
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>> KDCRep: init() encoding tag is 126 req type is 11
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4) >>>KRBError:
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     sTime is Tue Mar 29 13:51:26 CEST 2016 1459252286000
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     suSec is 834289
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     error code is 25
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     error Message is Additional pre-authentication required
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     sname is krbtgt/[email protected]
 2016-03-29 13:51:26,089 INFO  [stdout] (default task-4)     eData provided.
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     msgType is 30
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-DATA type = 19
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-ETYPE-INFO2 etype = 18, salt = XXX.CZHTTPserver.xxx.cz, s2kparams = null
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-ETYPE-INFO2 etype = 23, salt = null, s2kparams = null
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-DATA type = 2
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-ENC-TIMESTAMP
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-DATA type = 16
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) >>>Pre-Authentication Data:
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4)     PA-DATA type = 15
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) KrbAsReqBuilder: PREAUTH FAILED/REQ, re-send AS-REQ
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) default etypes for default_tkt_enctypes: 23 18 17 16.
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) Looking for keys for: HTTP/[email protected]
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) Added key: 17version: 4
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) Added key: 18version: 4
 2016-03-29 13:51:26,105 INFO  [stdout] (default task-4) Added key: 23version: 4
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Found unsupported keytype (3) for HTTP/[email protected]
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Found unsupported keytype (1) for HTTP/[email protected]
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Looking for keys for: HTTP/[email protected]
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Added key: 17version: 4
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Added key: 18version: 4
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Added key: 23version: 4
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Found unsupported keytype (3) for HTTP/[email protected]
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) Found unsupported keytype (1) for HTTP/[email protected]
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) default etypes for default_tkt_enctypes: 23 18 17 16.
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) >>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) >>> KrbAsReq creating message
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) >>> KrbKdcReq send: kdc=adsrv.xxx.cz UDP:88, timeout=30000, number of retries =3, #bytes=232
 2016-03-29 13:51:26,120 INFO  [stdout] (default task-4) >>> KDCCommunication: kdc=adsrv.xxx.cz UDP:88, timeout=30000,Attempt =1, #bytes=232
 2016-03-29 13:51:26,136 INFO  [stdout] (default task-4) >>> KrbKdcReq send: #bytes read=84
 2016-03-29 13:51:26,136 INFO  [stdout] (default task-4) >>> KrbKdcReq send: kdc=adsrv.xxx.cz TCP:88, timeout=30000, number of retries =3, #bytes=232
 2016-03-29 13:51:26,136 INFO  [stdout] (default task-4) >>> KDCCommunication: kdc=adsrv.xxx.cz TCP:88, timeout=30000,Attempt =1, #bytes=232
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) >>>DEBUG: TCPClient reading 1478 bytes
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) >>> KrbKdcReq send: #bytes read=1478
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) >>> KdcAccessibility: remove adsrv.xxx.cz
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Looking for keys for: HTTP/[email protected]
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Added key: 17version: 4
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Added key: 18version: 4
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Added key: 23version: 4
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Found unsupported keytype (3) for HTTP/[email protected]
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Found unsupported keytype (1) for HTTP/[email protected]
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) >>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) >>> KrbAsRep cons in KrbAsReq.getReply HTTP/server.xxx.cz
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) principal is HTTP/[email protected]
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Will use keytab
 2016-03-29 13:51:26,151 INFO  [stdout] (default task-4) Commit Succeeded 
 2016-03-29 13:51:26,167 INFO  [stdout] (default task-4) 
 2016-03-29 13:51:26,167 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) Subject = Subject:
    Principal: HTTP/[email protected]
    Private Credential: Ticket (hex) = 
 0000: 61 82 04 50 30 82 04 4C   A0 03 02 01 05 A1 08 1B  a..P0..L........
 0010: 06 41 4E 53 2E 43 5A A2   1B 30 19 A0 03 02 01 02  .XXX.CZ..0......
 0020: A1 12 30 10 1B 06 6B 72   62 74 67 74 1B 06 41 4E  ..0...krbtgt..AN
 0030: 53 2E 43 5A A3 82 04 1C   30 82 04 18 A0 03 02 01  S.CZ....0.......
 0040: 12 A1 03 02 01 03 A2 82   04 0A 04 82 04 06 F6 70  ...............p
 0050: 6C 89 66 60 B0 8D 98 60   81 3A 13 49 C0 C8 92 96  l.f`...`.:.I....
 0060: BE 05 0D 59 F1 98 2C CA   AD 7D C2 0E 89 17 1F 36  ...Y..,........6
 0070: 55 0B D0 BE 74 E1 45 E9   78 E5 A0 EF A3 0B 7E AA  U...t.E.x.......
 0080: F7 8D 47 35 EA BE 1F 52   0D 05 77 05 CA 19 FE 4E  ..G5...R..w....N
 0090: D2 FE 46 DD 70 79 DC 40   D4 AE 70 25 BA BA 48 11  [email protected]%..H.
 00A0: EB 1E 5C 4E F0 73 33 D2   98 47 F8 17 F1 0E 9C D2  ..\N.s3..G......
 00B0: 23 BD B8 7B 69 C5 FF 43   1E 13 CB 8F 96 C7 3F D1  #...i..C......?.
 00C0: 24 4A 5E E0 69 70 2D E3   D0 45 3B 09 0C 4B CA FD  $J^.ip-..E;..K..
 00D0: 08 97 20 BC BB 71 58 B0   5A 00 D2 C4 7D 3A 0F 26  .. ..qX.Z....:.&
 00E0: 56 B3 6C D3 FF FC 6C 4E   51 1D B9 DF BE 02 D0 7B  V.l...lNQ.......
 00F0: E0 0C B0 21 AA 54 71 07   63 6A 6D 65 34 08 4F 9F  ...!.Tq.cjme4.O.
 0100: 22 7C 37 70 CF 40 C5 77   56 10 C8 C2 B4 5B 5D BB  "[email protected]....[].
 0110: FA C0 51 05 E8 14 04 AE   52 8D 80 AA 31 66 6E 7F  ..Q.....R...1fn.
 0120: 28 3E 49 35 9E A4 5A ED   21 0A FE D9 B1 96 15 A6  (>I5..Z.!.......
 0130: 51 0A A6 AA BB 1D 22 B9   FC 2D 87 65 42 FB 5E 17  Q....."..-.eB.^.
 0140: 94 32 2F BA 94 06 7C 3A   9E 56 73 52 59 FE F1 3C  .2/....:.VsRY..<
 0150: D0 19 5F B3 B3 E3 0D F4   0C 51 1A E2 CF 19 50 61  .._......Q....Pa
 0160: BA 55 6A 57 F8 9F 8F F7   43 D7 2B B8 62 22 6E F4  .UjW....C.+.b"n.
 0170: B2 A8 CC 09 A9 3B A4 C2   5D D8 75 EA 99 7E 20 93  .....;..].u... .
 0180: 33 ED 8B BF 40 CC 82 49   69 F5 05 3D 30 1A 5D D4  [email protected]..=0.].
 0190: CD E2 A3 DE 36 77 94 63   D2 B4 DE 44 AA 35 BD C9  ....6w.c...D.5..
 01A0: 5D 57 4D 10 E6 51 A7 D9   A5 A6 EB 9A A1 2D 88 2C  ]WM..Q.......-.,
 01B0: 27 F1 C8 8E E9 1B 14 90   88 E7 4E 70 3C 53 EC E7  '.........Np<S..
 01C0: 29 84 DA 1C 7E 33 A2 99   9D C5 85 3B 63 67 CE 84  )....3.....;cg..
 01D0: 73 41 75 67 9D 6E BC E9   80 0B 1C B4 56 0C AB 92  sAug.n......V...
 01E0: 13 79 D2 4D D9 B8 15 91   51 48 ED 7D 30 8B 16 ED  .y.M....QH..0...
 01F0: C4 AB CE 0D D7 F6 0D 41   7F BA 99 E1 9E 51 8D 82  .......A.....Q..
 0200: 2D 2D B9 1B C8 92 71 22   28 43 B2 AD FC 67 A0 10  --....q"(C...g..
 0210: 3E 85 61 52 48 C1 2C A7   CC 49 70 7B 1E 32 27 22  >.aRH.,..Ip..2'"
 0220: 30 04 DD 4E 6E 45 F3 0B   0F E2 F6 EB 8E CF 0D B7  0..NnE..........
 0230: 32 F4 2D 47 E6 B3 13 97   E3 C2 D0 53 84 ED FC 7C  2.-G.......S....
 0240: 40 60 52 AC FC 0C C8 C9   D7 D3 C6 C6 F0 33 34 1B  @`R..........34.
 0250: 8E 6E 12 3B AB 30 34 0C   99 29 11 67 A2 01 75 BB  .n.;.04..).g..u.
 0260: 8F C2 8F A9 47 71 63 EF   58 17 95 46 57 69 8C 4F  ....Gqc.X..FWi.O
 0270: 2B 47 50 2E D9 C2 B6 3C   2A FF BD 0E DF FB 72 DF  +GP....<*.....r.
 0280: 76 58 9A DF 8A 94 DC 7C   ED 99 BB D5 DF 27 88 F8  vX...........'..
 0290: 65 A2 5F 16 C0 A2 43 FA   F3 E7 88 DF 88 62 20 F8  e._...C......b .
 02A0: 4A 6C C3 8D 36 3F 82 F4   0C 37 6B BB C1 89 20 12  Jl..6?...7k... .
 02B0: 36 9E E2 48 D0 BE 30 09   36 1B 7E 4C 8F 90 D8 C2  6..H..0.6..L....
 02C0: 6F 64 E8 DE D4 BE B9 B4   CD 53 F2 B1 29 AF 19 0B  od.......S..)...
 02D0: 09 93 20 6D CE 92 7D EE   DB 38 19 46 04 C1 E4 CE  .. m.....8.F....
 02E0: DC 05 60 DF 48 30 89 41   3D CA 2A 91 02 5E C5 FA  ..`.H0.A=.*..^..
 02F0: B0 07 25 E1 06 92 4F CD   61 B9 EB 79 2B E3 31 70  ..%...O.a..y+.1p
 0300: CF 9D 30 35 61 E0 ED 17   88 08 87 67 CB E8 B3 05  ..05a......g....
 0310: E6 80 2C 2E D7 B8 4B 31   06 64 E5 2D 29 98 64 84  ..,...K1.d.-).d.
 0320: B2 97 59 D5 7E B4 38 7D   C0 87 B6 79 3A 8E AD 28  ..Y...8....y:..(
 0330: E3 01 83 DE E6 9C E2 A6   A2 42 88 2F 13 E6 DF 4A  .........B./...J
 0340: D4 1A 2D 08 B8 87 7C B3   EF D6 CD 26 CF F3 E9 7C  ..-........&....
 0350: 97 39 43 6C 38 BC C4 02   53 27 D9 5A 8A BA 8A DF  .9Cl8...S'.Z....
 0360: 73 48 19 04 6E 7F B7 6D   5D B5 ED A3 0A 1A 2A B8  sH..n..m].....*.
 0370: F1 22 A8 AF 82 08 D1 5D   74 04 F8 87 81 55 39 8B  .".....]t....U9.
 0380: 40 BF C3 26 4F 5C 56 05   C8 9F 2A 3A F2 3D A7 2B  @..&O\V...*:.=.+
 0390: 48 F3 0A 60 AD 8B 53 A0   8A 86 6F 54 54 1D 84 67  H..`..S...oTT..g
 03A0: 23 B4 0F 59 A4 73 94 9F   FE 43 63 DF 68 7A F1 8D  #..Y.s...Cc.hz..
 03B0: B4 B2 C4 CC 42 F0 23 3E   50 5F 64 C1 AD 1C EC 2A  ....B.#>P_d....*
 03C0: 2D F2 1F 52 F1 81 33 D7   B1 85 D8 98 A7 38 22 7F  -..R..3......8".
 03D0: 42 00 7E 1F 8C 8D 32 00   B9 F9 61 F2 86 59 4C 69  B.....2...a..YLi
 03E0: E0 19 AC 5D 75 E1 98 A6   83 A2 5F 4E C2 6D D9 69  ...]u....._N.m.i
 03F0: EC 3B 5D E5 A3 10 F5 24   95 B0 EC E2 FF FC CF 54  .;]....$.......T
 0400: BC 2B 43 AD 4A D6 77 A2   1B 54 AE 52 AC 5A E2 75  .+C.J.w..T.R.Z.u
 0410: 59 38 C7 64 15 0C CE 18   50 1D 24 9C FE FB 3C 4A  Y8.d....P.$...<J
 0420: 33 31 4B C6 65 40 F7 8B   4A 35 75 67 1B DD 1F 60  [email protected]...`
 0430: 10 CF C2 AB 05 8B AD 43   2A 95 FE AA 94 80 98 38  .......C*......8
 0440: D8 3C 6A 15 21 40 34 E8   0B 42 73 5A 9A B4 4F D4  .<[email protected].
 0450: 17 57 30 D1                                        .W0.

 Client Principal = HTTP/[email protected]
 Server Principal = krbtgt/[email protected]
 Session Key = EncryptionKey: keyType=23 keyBytes (hex dump)=
 0000: 10 A6 39 17 84 65 5E 8C   5B 39 22 E4 2A 9E 95 97  ..9..e^.[9".*...


 Forwardable Ticket false
 Forwarded Ticket false
 Proxiable Ticket false
 Proxy Ticket false
 Postdated Ticket false
 Renewable Ticket false
 Initial Ticket false
 Auth Time = Tue Mar 29 13:51:26 CEST 2016
 Start Time = Tue Mar 29 13:51:26 CEST 2016
 End Time = Tue Mar 29 23:51:26 CEST 2016
 Renew Till = null
 Client Addresses  Null 
    Private Credential: Default keytab for HTTP/[email protected]

 2016-03-29 13:51:26,198 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) Logged in 'host' LoginContext
 2016-03-29 13:51:26,198 INFO  [stdout] (default task-4)        [Krb5LoginModule]: Entering logout
 2016-03-29 13:51:26,198 INFO  [stdout] (default task-4)        [Krb5LoginModule]: logged out Subject
 2016-03-29 13:51:26,198 DEBUG [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-4) NegotiationContext.setContinuationRequired(true)
 2016-03-29 13:51:26,214 DEBUG [org.jboss.security] (default task-4) PBOX00206: Login failure: javax.security.auth.login.LoginException: Continuation Required.
    at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.login(SPNEGOLoginModule.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:755)
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:195)
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682)
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
    at javax.security.auth.login.LoginContext.login(LoginContext.java:587)
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:406)
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.proceedWithJaasLogin(JBossCachedAuthenticationManager.java:345)
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.authenticate(JBossCachedAuthenticationManager.java:333)
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.isValid(JBossCachedAuthenticationManager.java:146)
    at org.wildfly.extension.undertow.security.JAASIdentityManagerImpl.verifyCredential(JAASIdentityManagerImpl.java:123)
    at org.wildfly.extension.undertow.security.JAASIdentityManagerImpl.verify(JAASIdentityManagerImpl.java:96)
    at org.jboss.security.negotiation.NegotiationMechanism.authenticate(NegotiationMechanism.java:99)
    at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:233)
    at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.transition(SecurityContextImpl.java:250)
    at io.undertow.security.impl.SecurityContextImpl$AuthAttempter.access$100(SecurityContextImpl.java:219)
    at io.undertow.security.impl.SecurityContextImpl.attemptAuthentication(SecurityContextImpl.java:121)
    at io.undertow.security.impl.SecurityContextImpl.authTransition(SecurityContextImpl.java:96)
    at io.undertow.security.impl.SecurityContextImpl.authenticate(SecurityContextImpl.java:89)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:55)
    at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

 2016-03-29 13:51:26,625 TRACE [org.jboss.security] (default task-3) PBOX00201: End isValid, result = false
 2016-03-29 13:51:26,625 TRACE [org.jboss.security.negotiation.common.NegotiationContext] (default task-3) clear 35ec8348
 2016-03-29 13:51:26,641 TRACE [org.jboss.security] (default task-3) PBOX00354: Setting security roles ThreadLocal: null

Upvotes: 0

Views: 5000

Answers (2)

Matej Liszka
Matej Liszka

Reputation: 1

I confirm that with the latest jboss-negotiation module (version 3.0.3) and WildFly 10.0.0 it is possible to use Kerberos authentication. The "Continuation Required" exception is still thrown but it is masked in the log (unless log category org.jboss.security is set to DEBUG). I made some more tests with WildFly 10.1.0 and confirm that Kerberos authentication works out-of-the-box there (it is shipped with jboss-negotiation module 3.0.2), it is however better to patch to jboss-negotiation 3.0.3 as well if you are going to use LDAP for role mapping (because of LDAP bug fixes in that version).

Upvotes: 0

Martin Choma
Martin Choma

Reputation: 124

You hit https://issues.jboss.org/browse/JBEAP-3709, which will be repaired in wildfly once https://github.com/wildfly/wildfly/pull/8816 will be merged.

Solution is to upgrade org.jboss.security.negotiation to version 3.0.2.Final, which you can achieve by rebuilding wildfly with aforementioned pull request incorporated or changing jars in directory modules/system/layers/base/org/jboss/security/negotiation/main

Upvotes: 2

Related Questions