Alexander Suter created CXF-9056:
------------------------------------
Summary: NTML Login ends up with Authorization loop detected after
upgrading CXF from 3.5 to 3.6
Key: CXF-9056
URL: https://issues.apache.org/jira/browse/CXF-9056
Project: CXF
Issue Type: Bug
Reporter: Alexander Suter
Attachments: stacktrace.txt
After upgrading cxf from 3.5 to 3.6 we can no longer authenticate with NTLM
with CXF as web service client technology.
We do support two modes in our product. With Challenge and without challenge.
And the case without challenge (challenge = false) is no longer working whereas
the authentication will be set on the httpConduit directly.
{color:#cc6c1d}public{color}{color:#d9e8f7}
{color}{color:#cc6c1d}class{color}{color:#d9e8f7}
{color}{color:#1290c3}NTLMAuthenticationFeature{color}{color:#d9e8f7}
{color}{color:#cc6c1d}implements{color}{color:#d9e8f7}
{color}{color:#80f2f6}WebServiceClientFeature{color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#a0a0a0}@Override{color}
{color:#d9e8f7} {color}{color:#cc6c1d}public{color}{color:#d9e8f7}
{color}{color:#cc6c1d}void{color}{color:#d9e8f7}
{color}{color:#1eb540}initialize{color}{color:#f9faf4}({color}{color:#1290c3}WebServiceClientFeatureContext{color}{color:#d9e8f7}
{color}{color:#79abff}context{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#80f2f6}BindingProvider{color}{color:#d9e8f7}
{color}{color:#f2f200}bindingProvider{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}context{color}{color:#e6e6fa}.{color}{color:#a7ec21}getBindingProvider{color}{color:#f9faf4}(){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#1290c3}WsProps{color}{color:#d9e8f7}
{color}{color:#f2f200}props{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#cc6c1d}new{color}{color:#d9e8f7}
{color}{color:#a7ec21}WsProps{color}{color:#f9faf4}({color}{color:#79abff}context{color}{color:#e6e6fa}.{color}{color:#a7ec21}getProperties{color}{color:#f9faf4}()){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#80f2f6}Client{color}{color:#d9e8f7}
{color}{color:#f2f200}proxy{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#1290c3}ClientProxy{color}{color:#e6e6fa}.{color}{color:#96ec3f}getClient{color}{color:#f9faf4}({color}{color:#f3ec79}bindingProvider{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}boolean{color}{color:#d9e8f7}
{color}{color:#f2f200}challenge{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#f3ec79}props{color}{color:#e6e6fa}.{color}{color:#a7ec21}bool{color}{color:#f9faf4}({color}{color:#80f2f6}Authentication{color}{color:#e6e6fa}.{color}{color:#80f2f6}NTLM{color}{color:#e6e6fa}.{color}{color:#8ddaf8}CHALLENGE{color}{color:#f9faf4}){color}{color:#e6e6fa}.{color}{color:#a7ec21}orElse{color}{color:#f9faf4}({color}{color:#1290c3}Boolean{color}{color:#e6e6fa}.{color}{color:#8ddaf8}TRUE{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7}
{color}{color:#f3ec79}proxy{color}{color:#e6e6fa}.{color}{color:#80f6a7}getRequestContext{color}{color:#f9faf4}(){color}{color:#e6e6fa}.{color}{color:#80f6a7}put{color}{color:#f9faf4}({color}{color:#1290c3}AsyncHTTPConduit{color}{color:#e6e6fa}.{color}{color:#8ddaf8}USE_ASYNC{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}challenge{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}credentials{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#96ec3f}createNTCredentials{color}{color:#f9faf4}({color}{color:#f3ec79}props{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}if{color}{color:#d9e8f7}
{color}{color:#f9faf4}({color}{color:#f3ec79}challenge{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7}
{color}{color:#f3ec79}proxy{color}{color:#e6e6fa}.{color}{color:#80f6a7}getRequestContext{color}{color:#f9faf4}(){color}{color:#e6e6fa}.{color}{color:#80f6a7}put{color}{color:#f9faf4}({color}{color:#80f2f6}Credentials{color}{color:#e6e6fa}.{color}{color:#cc6c1d}class{color}{color:#e6e6fa}.{color}{color:#a7ec21}getName{color}{color:#f9faf4}(){color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}credentials{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#80f2f6}Conduit{color}{color:#d9e8f7}
{color}{color:#f2f200}conduit{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#f3ec79}proxy{color}{color:#e6e6fa}.{color}{color:#80f6a7}getConduit{color}{color:#f9faf4}(){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}if{color}{color:#d9e8f7}
{color}{color:#f9faf4}({color}{color:#f3ec79}conduit{color}{color:#d9e8f7}
{color}{color:#cc6c1d}instanceof{color}{color:#d9e8f7}
{color}{color:#3eabe6}HTTPConduit{color}{color:#d9e8f7}
{color}{color:#f2f200}httpConduit{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7}
{color}{color:#f3ec79}httpConduit{color}{color:#e6e6fa}.{color}{color:#a7ec21}getClient{color}{color:#f9faf4}(){color}{color:#e6e6fa}.{color}{color:#a7ec21}setAutoRedirect{color}{color:#f9faf4}({color}{color:#cc6c1d}true{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}if{color}{color:#d9e8f7}
{color}{color:#f9faf4}({color}{color:#e6e6fa}!{color}{color:#f3ec79}challenge{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#f9faf4} // this does no longer work{color}
{color:#d9e8f7}
{color}{color:#f3ec79}httpConduit{color}{color:#e6e6fa}.{color}{color:#a7ec21}getClient{color}{color:#f9faf4}(){color}{color:#e6e6fa}.{color}{color:#a7ec21}setAllowChunking{color}{color:#f9faf4}({color}{color:#cc6c1d}false{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7}
{color}{color:#a7ec21}setNtlmAuthHeader{color}{color:#f9faf4}({color}{color:#f3ec79}credentials{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}httpConduit{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#cc6c1d}private{color}{color:#d9e8f7}
{color}{color:#cc6c1d}void{color}{color:#d9e8f7}
{color}{color:#1eb540}setNtlmAuthHeader{color}{color:#f9faf4}({color}{color:#1290c3}NTCredentials{color}{color:#d9e8f7}
{color}{color:#79abff}credentials{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#3eabe6}HTTPConduit{color}{color:#d9e8f7}
{color}{color:#79abff}httpConduit{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}auth{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}httpConduit{color}{color:#e6e6fa}.{color}{color:#a7ec21}getAuthorization{color}{color:#f9faf4}(){color}{color:#e6e6fa};{color}
{color:#d9e8f7}
{color}{color:#f3ec79}auth{color}{color:#e6e6fa}.{color}{color:#a7ec21}setAuthorizationType{color}{color:#f9faf4}({color}{color:#17c6a3}"NTLM"{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7}
{color}{color:#f3ec79}auth{color}{color:#e6e6fa}.{color}{color:#a7ec21}setUserName{color}{color:#f9faf4}({color}{color:#79abff}credentials{color}{color:#e6e6fa}.{color}{color:#a7ec21}getUserPrincipal{color}{color:#f9faf4}(){color}{color:#e6e6fa}.{color}{color:#80f6a7}getName{color}{color:#f9faf4}()){color}{color:#e6e6fa};{color}
{color:#d9e8f7}
{color}{color:#f3ec79}auth{color}{color:#e6e6fa}.{color}{color:#a7ec21}setPassword{color}{color:#f9faf4}({color}{color:#79abff}credentials{color}{color:#e6e6fa}.{color}{color:#a7ec21}getPassword{color}{color:#f9faf4}()){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#cc6c1d}private{color}{color:#d9e8f7}
{color}{color:#cc6c1d}static{color}{color:#d9e8f7}
{color}{color:#1290c3}NTCredentials{color}{color:#d9e8f7}
{color}{color:#1eb540}createNTCredentials{color}{color:#f9faf4}({color}{color:#1290c3}WsProps{color}{color:#d9e8f7}
{color}{color:#79abff}properties{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}username{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}properties{color}{color:#e6e6fa}.{color}{color:#a7ec21}string{color}{color:#f9faf4}({color}{color:#80f2f6}Authentication{color}{color:#e6e6fa}.{color}{color:#8ddaf8}USERNAME{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}password{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}properties{color}{color:#e6e6fa}.{color}{color:#a7ec21}string{color}{color:#f9faf4}({color}{color:#80f2f6}Authentication{color}{color:#e6e6fa}.{color}{color:#8ddaf8}PASSWORD{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}workstation{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}properties{color}{color:#e6e6fa}.{color}{color:#a7ec21}string{color}{color:#f9faf4}({color}{color:#80f2f6}Authentication{color}{color:#e6e6fa}.{color}{color:#80f2f6}NTLM{color}{color:#e6e6fa}.{color}{color:#8ddaf8}WORKSTATION{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}var{color}{color:#d9e8f7}
{color}{color:#f2f200}domain{color}{color:#d9e8f7}
{color}{color:#e6e6fa}={color}{color:#d9e8f7}
{color}{color:#79abff}properties{color}{color:#e6e6fa}.{color}{color:#a7ec21}string{color}{color:#f9faf4}({color}{color:#80f2f6}Authentication{color}{color:#e6e6fa}.{color}{color:#80f2f6}NTLM{color}{color:#e6e6fa}.{color}{color:#8ddaf8}DOMAIN{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#cc6c1d}return{color}{color:#d9e8f7}
{color}{color:#cc6c1d}new{color}{color:#d9e8f7}
{color}{color:#a7ec21}NTCredentials{color}{color:#f9faf4}({color}{color:#f3ec79}username{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}password{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}workstation{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#f3ec79}domain{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#cc6c1d}private{color}{color:#d9e8f7}
{color}{color:#cc6c1d}static{color}{color:#d9e8f7}
{color}{color:#cc6c1d}record{color}{color:#d9e8f7}
WsProps{color}{color:#f9faf4}({color}{color:#80f2f6}Map{color}{color:#e6e6fa}<{color}{color:#b166da}String{color}{color:#e6e6fa},{color}{color:#d9e8f7}
{color}{color:#b166da}Object{color}{color:#e6e6fa}>{color}{color:#d9e8f7}
{color}{color:#f2f200}props{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#1290c3}String{color}{color:#d9e8f7}
{color}{color:#1eb540}string{color}{color:#f9faf4}({color}{color:#1290c3}String{color}{color:#d9e8f7}
{color}{color:#79abff}key{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#cc6c1d} return{color}{color:#d9e8f7}
{color}{color:#1290c3}Optional{color}{color:#e6e6fa}.{color}{color:#96ec3f}ofNullable{color}{color:#f9faf4}({color}{color:#66e1f8}props{color}{color:#e6e6fa}.{color}{color:#80f6a7}get{color}{color:#f9faf4}({color}{color:#79abff}key{color}{color:#f9faf4})){color}
{color:#d9e8f7}
{color}{color:#e6e6fa}.{color}{color:#a7ec21}map{color}{color:#f9faf4}({color}{color:#1290c3}String{color}{color:#e6e6fa}.{color}{color:#cc6c1d}class{color}{color:#e6e6fa}::{color}{color:#a7ec21}cast{color}{color:#f9faf4}){color}
{color:#d9e8f7}
{color}{color:#e6e6fa}.{color}{color:#a7ec21}orElse{color}{color:#f9faf4}({color}{color:#cc6c1d}null{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7}
{color}{color:#1290c3}Optional{color}{color:#e6e6fa}<{color}{color:#b166da}Boolean{color}{color:#e6e6fa}>{color}{color:#d9e8f7}
{color}{color:#1eb540}bool{color}{color:#f9faf4}({color}{color:#1290c3}String{color}{color:#d9e8f7}
{color}{color:#79abff}key{color}{color:#f9faf4}){color}{color:#d9e8f7}
{color}{color:#f9faf4}{{color}
{color:#d9e8f7} {color}{color:#cc6c1d}return{color}{color:#d9e8f7}
{color}{color:#1290c3}Optional{color}{color:#e6e6fa}.{color}{color:#96ec3f}ofNullable{color}{color:#f9faf4}({color}{color:#66e1f8}props{color}{color:#e6e6fa}.{color}{color:#80f6a7}get{color}{color:#f9faf4}({color}{color:#79abff}key{color}{color:#f9faf4})){color}
{color:#d9e8f7}
{color}{color:#e6e6fa}.{color}{color:#a7ec21}map{color}{color:#f9faf4}({color}{color:#1290c3}String{color}{color:#e6e6fa}.{color}{color:#cc6c1d}class{color}{color:#e6e6fa}::{color}{color:#a7ec21}cast{color}{color:#f9faf4}){color}
{color:#d9e8f7}
{color}{color:#e6e6fa}.{color}{color:#a7ec21}filter{color}{color:#f9faf4}({color}{color:#d9e8f7}Predicate{color}{color:#e6e6fa}.{color}{color:#96ec3f}not{color}{color:#f9faf4}({color}{color:#d9e8f7}String{color}{color:#e6e6fa}::{color}{color:#a7ec21}isBlank{color}{color:#f9faf4})){color}
{color:#d9e8f7}
{color}{color:#e6e6fa}.{color}{color:#a7ec21}map{color}{color:#f9faf4}({color}{color:#d9e8f7}Boolean{color}{color:#e6e6fa}::{color}{color:#96ec3f}parseBoolean{color}{color:#f9faf4}){color}{color:#e6e6fa};{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#d9e8f7} {color}{color:#f9faf4}}{color}
{color:#f9faf4}}{color}
See the error stack trace in the log.
Do you have any hints for this problem?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)