2016-08-03 10 views
0

j_security_controlを使用してwebappのログイン機能を設定しようとしていますが、最近ログインしているときにタイトルからエラーが発生しています。ここでは、関連するログインJSPは次のとおりです。Tomcat 8 - フォームのログインページへの直接参照が無効

<div class="loginContainer"> 
     <form role="form" method="POST" action="<%=request.getContextPath()%>/j_security_check"> 
      <c:if test="${not empty param.Retry}"> 
       <div class="errorText"> 
        <p>Login failed. Please try again.</p> 
       </div> 
      </c:if> 
      <div class="username"> 
       <label class="loginText" for="inputUser">User</label> 
       <input type="text" class="form-control" id="inputUser" placeholder="Username" name="j_username" autofocus> 
      </div> 
      <div class="password"> 
       <label class="loginText" for="inputPassword">Password</label> 
       <input type="password" class="form-control" id="inputPassword" placeholder="Password" name="j_password"> 
      </div> 
      <div> 
       <button type="submit" class="btn loginButton" id="loginButton">Login</button> 
      </div> 
     </form> 
    </div> 

以下のようなヘッダから呼び出されています:web.xmlの

<c:choose> 
    <c:when test="${not empty pageContext.request.userPrincipal}"> 
     <a id="logout" href="${base}/jsp/login/logout.jsp" 
      class="fse-hid-small navbartext" 
      data-ng-class="{'selected': idSelected === 'logout'}" 
      title="Goodbye!">LOGOUT</a> 
    </c:when> 
    <c:otherwise> 
     <a id="login" href="${base}/jsp/login/login.jsp" 
      class="fse-hid-small navbartext" 
      data-ng-class="{'selected': idSelected === 'login'}" 
      title="Login Here!">LOGIN</a> 
    </c:otherwise> 
</c:choose> 

と定義される:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>InternalUserRole</web-resource-name> 
     <url-pattern>/jsp/internal/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>InternalUser</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/jsp/login/login.jsp</form-login-page> 
     <form-error-page>/jsp/login/login.jsp?Retry=True</form-error-page> 
    </form-login-config> 
</login-config> 

これは、いくつかの時間前に働いていました残念ながら、いつ壊れたのか分かりません。この仕事をするために私はとにかくありますか?

+0

キャッシュをクリアしてURLをエンコードしようとしましたが、同じ問題があります。 –

+0

セキュリティで保護されたリダイレクトを作成しようとしましたが、Localhostが接続エラーを拒否しました –

答えて

0

他に誰も見たことがないので、私はこの悪質なtomcatセキュリティの問題を乗り越えるためのハックな解決策を管理しました。

  1. ルートページにリダイレクトする単純なサーブレットを作成します。
  2. web-resource-collectionエントリを作成して、そのサーブレットページを安全にし、ロールを必要とするようにします。
  3. 作成したサーブレットへのログイン・ページ・ポイントへのリンクを作成します。

このリンクをクリックすると、移動したいログインページにリダイレクトされます。ログインすると、ルートインデックスページにリダイレクトされます。信じられないほど迷惑なセキュリティエラーを回避する簡単な方法です。これは役に立ちません。

関連する問題