下位バージョンを上位バージョン 1.7.0---->1.9.1 にアップグレードします。
攻撃者は多数の hiro 脆弱性攻撃を使用しました。これらの最新パッケージを見つけるために、検索に 1 日かかり、最終的には検索に時間がかかりました。ネットユーザーのプロンプト「巣を見つけました」: (CSDN の多くのユーザーはブログにアップロードしますが、ダウンロードするとすぐに料金が請求されるため、非常に気分が悪いです)
ダウンロードアドレス: (Maven ライブラリ)
https://mvnrepository.com/artifact/org.apache.hiro/hiro-core
アップグレードすべき内容については、以下の内容がテストされています (バージョン 1.7 へのアップグレードを例に挙げます)。
hiro-core-1.7.0.jar
hiro-web-1.7.0.jar
hiro-ehcache-1.7.0.jar
バージョンアップには他の機能も追加されるため、次の 2 つの jar パッケージも必要です (どちらも上記のライブラリから入手できます)。
commons-beanutils-1.9.4.jar
エンコーダ-1.2.2.jar
発生した問題: hiro1.3 を 1.7 にアップグレードするときに、リダイレクトされたログイン ページに遭遇すると 400 エラーが報告されました。
プロジェクトのシングル サインイン要件により、元のプロジェクトはシングル サインインに変換され、hiro はアップグレードされました。元の 1.3 から 1.7 に変更しました。変更が加えられた場合、ログイン リダイレクトは 400 を報告しますが、ログイン ページへの直接アクセスは正常です。この 2 つの違いは、URL に独自のパラメータ jsessionid が追加されることです。構成ファイルを変更するだけです。コードは次のとおりです。
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionIdUrlRewritingEnabled" value="false" /><!--这个参数,默认为true,改为false-->
<property name="globalSessionTimeout" value="1800000" />
</bean>
<!-- securityManager安全管理器 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="userAuthorizingRealm" />
<property name="sessionManager" ref="sessionManager" />
</bean>