在SAML登录时出现“组长度高于限制”错误

维纳Reddy
2023-01-22 11:06

描述

当SAML用户尝试登录到Artifactory时,尝试失败,console.log将有如下所示的条目
2022 - 04 - 25 t23:01:36.427z ^ [[1; 32 m [jfrt] ^ [[0; 39 m ^ [[39 m(调试)^ [[0;39 m [1 bcf15005756f4ae] [o.a.a.s.s。SamlHandlerImpl:177] [ttp-nio-8081-exec-44] - SAML组解析数:'0'
2022 - 04 - 25 t23:01:36.427z ^ [[1; 32 m [jfrt] ^ [[0; 39 m ^ [[39 m(调试)^ [[0;39 m [1 bcf15005756f4ae] [o.a.a.s.s。SamlHandlerImpl:183] [ttp-nio-8081-exec-44] -解析SAML email: ''
2022 - 04 - 25 t23:01:36.427z ^ [[1; 32 m [jfrt] ^ [[0; 39 m ^ [[39 m(调试)^ [[0;39 m [1 bcf15005756f4ae] [o.a.a.s.s。SamlHandlerImpl:187] [ttp-nio-8081-exec-44] -解析SAML用户:'<用户名>'
2022 - 04 - 25 t23:01:36.579z ^ [[1; 32 m [jfrt] ^ [[0; 39 m ^ [[31 m[警告]^ [[0;39 m [1 bcf15005756f4ae] [. o。SingleSignOnServiceImpl:118] [ttp-nio-8081-exec-44] -无法验证token。原因解析
2022-04-25T23:01:38.870Z ^[[37m[jffe]^[[39m ^[[31m[WARN]^[[39m [1bcf15005756f4ae] [] [main] - AccessTokenService::getGroups组长度高于限制- 1800。
尝试压缩分组
2022-04-25T16:01:39.902L ^[[35m[tomct]^[0m [INFO] [] [] [org.apache.coyote.http11.]Http11Processor] [org.apache.coyote.http11。解析HTTP请求头出错
注意:进一步出现的HTTP请求解析错误将被记录在DEBUG级别。

决议

上述内容表明Artifactory从SAML提供程序接收到的报头包含超过1800个字符,这应该会阻止用户登录到系统。

修复需要编辑$JFROG_HOME/artifactory/app/misc/tomcat/server.xml文件。将以下值添加到Artifactory和Access连接器中:maxHttpHeaderSize= " 16384 " Tomcat 8中此参数的默认值。X等于8192。

下面是修改后的文件,以供参考<服务器端口="8015" shutdown=" shutdown ">
<服务名称=“卡特琳娜”>
<连接器端口="8081" maxHttpHeaderSize="16384" sendReasonPhrase="true" relaxedPathChars='[]' relaxedQueryChars='[]' maxThreads="200"/>

<!——必须至少是artifact .access.client.max.connections的值——>
<连接器端口="8040" maxHttpHeaderSize="16384" sendReasonPhrase="true" maxThreads="50"/>
<引擎名称="Catalina" defaultHost="localhost">
<主机名="localhost" workDir="${JF_PRODUCT_HOME}/var/work/artifactory/tomcat" appBase="webapps" startStopThreads="2"/> .
> < /引擎
< /服务>
> < /服务器

注意:需要重新启动Artifactory服务才能使更改生效。