0

私は春のセキュリティを使用しようとしています

すべての構成の前に

http://localhost:9090/app/login2.xhtml

リクエスト、期待どおりに動作します。

コントローラーを追加しました:

@Controller
@RequestMapping("/auth")
public class LoginController {


 @RequestMapping(value = "/login", method = RequestMethod.GET)
 public String getLoginPage(@RequestParam(value="error", required=false) boolean error, 
   ModelMap model) {
return "login2.xhtnml";
}

}

私はweb.xmlにあります:

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
                classpath:META-INF/spring-servlet.xml
        </param-value>
    </init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

私が呼び出すとき、この構成で

http://localhost:9090/app/login2.xhtml

エラーが出る

 WARN org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/app/login2.xhtml] in DispatcherServlet with name 'spring'

しかし、構成マッピングをに変更すると

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>

http://localhost:9090/app/login2.xhtml私が期待したように動作します

しかし

http://localhost:9090/app/auth/login

エラーも例外もリダイレクトもありません。ディスパッチャーサーブレットはこのリクエストについて知ることができないと思います。

http://localhost:9090/app/app/auth/login

で動作します

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/app/*</url-pattern>
    </servlet-mapping>

私の理解:

ディスパッチャ サーブレットは"http://localhost:9090/"、login2.xhtml を検索するためのベースとして使用"http://localhost:9090/app"し、URL に使用し/auth/loginます。

これをどこに設定すればよいのか、なぜ異なるのかわかりません。

4

1 に答える 1

0

SpringSecurityFilterChainをweb.xml に追加しましたか?

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

コンテナが(ログファイルから)起動した場合、登録された「リクエストバインディング」を過ぎていただけますか?

于 2013-07-25T17:17:51.920 に答える