我有一个使用CAS作为SSO解决方案的站点,并要求所有访问该站点的人都要进行身份验证。为了满足我们公司的规定,我们需要创建完全呈现的网站快照副本。我正在考虑使用像Httrack之类的东西来实现这一目标,但我需要绕过登录。我的计划是排除运行httrack的服务器的IP地址,但我似乎无法弄清楚如何配置它。
<sec:http name="contentSecurityFilterChain" use-expressions="true" access-decision-manager-ref="contentAccessDecisionManager" entry-point-ref="casAuthenticationEntryPoint">
<sec:custom-filter position="CAS_FILTER" ref="casAuthenticationFilter" />
<sec:logout logout-success-url="/logout.jsp" logout-url="/j_security_logout" invalidate-session="true" delete-cookies="sessionKey,userId,lastClient" />
<sec:access-denied-handler ref="accessDeniedHandler" />
<sec:custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER" />
<sec:custom-filter ref="singleLogoutFilter" before="CAS_FILTER" />
<sec:csrf disabled="true" />
<sec:headers>
<!-- Enable hsts if possible. See http://tools.ietf.org/html/rfc6797 -->
<sec:hsts disabled="true" />
<sec:cache-control disabled="true" />
<sec:frame-options disabled="true" />
</sec:headers>
<sec:intercept-url pattern="/monitoring/**" access="hasRole('ROLE_MONITORING')" requires-channel="${security.channel.dispatcher}" />
channel="${security.channel.dispatcher}" />
<sec:intercept-url pattern="/api/login" access="hasRole('ROLE_AUTHENTICATED')" />
<sec:intercept-url pattern="/**" access="hasRole('ROLE_AUTHENTICATED') or hasIpAddress('192.168.123.123')" requires-channel="${security.channel.dispatcher}" />
</sec:http>
我尝试了上面的第一次尝试(其中192.168.123.123代表我的排除服务器),但在返回到过滤器链之前,请求仍会被重定向到SSO站点。
我在我的各种幼稚小提琴中最接近的是在入口点添加一个过滤器,但没有触发开始方法;虽然它没有重定向请求,但它只返回一个空页面。我认为这是因为没有调用begin方法,请求被视为与过滤器组不匹配。
有没有办法从安全过滤器中排除IP地址?还有更好的方法吗?
建议最受欢迎!