質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

SpringSecurity での「No mapping found for HTTP request with URI」(404エラー)について

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,210

tuchida

score 2

SpringMVCおよびSpringSecutiryで開発していますが、最初の画面で404が出てしまい
コントローラ―に制御がわたりません。
@EnableWebSecurityの指定がよくないのではと思うのですが指定方法がよくわかりません。
どなたかお分かりの方がいらっし````ゃればご教授おねがいいたします。 <@EnableWebSecurityのjavaクラス>

import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;  
import org.springframework.security.config.annotation.web.builders.HttpSecurity;  
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;  
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;  
import org.springframework.security.core.userdetails.UserDetailsService;  
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;  
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;  


@EnableWebSecurity  
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {  

private BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder()  
;  



@Override  
protected void configure(final HttpSecurity http) throws Exception {  

http.authorizeRequests()  

.anyRequest().authenticated()  
.and()  

.formLogin().loginPage("/Login.jsp").failureUrl("/Login?error").permitAll()  

.loginPage("/Login.jsp")  

.failureUrl("/Login.jsp")  


.defaultSuccessUrl("/Login", true)  
.permitAll()  
.and()  

.logout()  

.logoutRequestMatcher(new AntPathRequestMatcher("/Logout"))  

.logoutSuccessUrl("/Login")  
.permitAll();  

}  

@Autowired  
public void configureGlobal(final AuthenticationManagerBuilder auth) throws Exception {  

auth.userDetailsService(userDetailsService())  
.passwordEncoder(passwordEncoder);  


}  

}  

<コントローラクラス>

import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Controller;  
import org.springframework.ui.Model;  
import org.springframework.web.bind.annotation.ModelAttribute;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  

import VEcomm.co.jp.constant.GlobalConst;  
import co.com.VESales.Service.LoginService;  

@Controller  
public class LoginController {  

private static final Logger logger = (Logger) LoggerFactory.getLogger(LoginController.class);  

@Autowired  
private LoginService loginService;  

private String LoginFormName = "Login";  
private String VEMenuFormName = GlobalConst.cnsRedirect +  "VEMenu";  


public LoginController() {  

loginService = new LoginService();  

}  


@RequestMapping(value = { "/", "Login","index","VESales"}, method = RequestMethod.GET)  
public String LoginGet(Locale locale, Model model) {  

String wRetForm;  


logger.info("LoginGet.", locale);  

// ログイン画面初期化  
loginService.LoginFormInit(model);  

wRetForm = LoginFormName;  

return wRetForm;  


}  
@RequestMapping(value = { "/", "Login","index","VESales"}, method = RequestMethod.POST)  
public String LoginPut(@ModelAttribute("userid") String pUserid,  
@ModelAttribute("password") String pPassword,  
Locale locale, Model model) {  
String wRetForm;  

logger.info("LoginPut.", locale);  

if (loginService.LoginUsercheck(pUserid, model)){  


if (loginService.LoginPasswordChk(pUserid, pPassword, model)) {  

wRetForm = VEMenuFormName;  


}else {  

wRetForm = LoginFormName;  

}  


}else {  

wRetForm = LoginFormName;  

}  

return wRetForm;  

}  
}  

<web.xml>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->  
<context-param>  
<param-name>contextConfigLocation</param-name>  
<param-value>/WEB-INF/spring/root-context.xml</param-value>  
</context-param>  

<!-- Creates the Spring Container shared by all Servlets and Filters -->  
<listener>  
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
</listener>  

<!-- Processes application requests -->  
<servlet>  
<servlet-name>appServlet</servlet-name>  
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
<init-param>  
<param-name>contextConfigLocation</param-name>  
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>  
</init-param>  
<load-on-startup>1</load-on-startup>  
</servlet>  

<servlet-mapping>  
<servlet-name>appServlet</servlet-name>  
<url-pattern>/</url-pattern>  
</servlet-mapping>  

<!-- エラーページ -->  
<!--  
<error-page>  
<error-code>404</error-code>  
<location>/404.jsp</location>  
</error-page>  
<error-page>  
<error-code>500</error-code>  
<location>/500.jsp</location>  
</error-page>  
-->  


<!-- 文字コード対応 -->  
<filter>  
<filter-name>characterEncodingFilter</filter-name>  
<filter-class>  
org.springframework.web.filter.CharacterEncodingFilter  
</filter-class>  
<init-param>  
<param-name>encoding</param-name>  
<param-value>UTF-8</param-value>  
</init-param>  
<init-param>  
<param-name>forceEncoding</param-name>  
<param-value>true</param-value>  
</init-param>  
</filter>  
<filter-mapping>  
<filter-name>characterEncodingFilter</filter-name>  
<url-pattern>/*</url-pattern>  
</filter-mapping>  


</web-app>  

<Servret-cntext>

<beans:beans xmlns="http://www.springframework.org/schema/mvc"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:beans="http://www.springframework.org/schema/beans"  
xmlns:context="http://www.springframework.org/schema/context"  
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd  
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">  

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->  

<!-- Enables the Spring MVC @Controller programming model -->  

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->  
<resources mapping="/resources/**" location="/resources/" />  

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->  
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
<beans:property name="prefix" value="/WEB-INF/views/" />  
<beans:property name="suffix" value=".jsp" />  
</beans:bean>  

<context:component-scan base-package="co.com.VESales" />  



<!-- MySQL  -->  
<beans:bean id="dataSource"  
class="org.springframework.jdbc.datasource.DriverManagerDataSource" >  
<beans:property name="driverClassName" value="org.gjt.mm.mysql.Driver" />  
<beans:property name="url" value="jdbc:mysql://127.0.0.1:3306/vesales" />  
<beans:property name="username" value="veusr01" />  
<beans:property name="password" value="nanami00" />  
</beans:bean>  

<beans:bean class="org.springframework.jdbc.core.JdbcTemplate">  
<beans:constructor-arg ref="dataSource" />  
</beans:bean>  


<!-- アプリケーションプロパティ  -->  
<beans:bean id="applicationProperties"  
class="org.springframework.beans.factory.config.PropertiesFactoryBean">  
<beans:property name="locations">  
<beans:list>  
<beans:value>classpath:application.properties</beans:value>  
</beans:list>  
</beans:property>  
<beans:property name="fileEncoding" value="UTF-8" />  
</beans:bean>  
<beans:bean id="placeHolderConfigurer"  
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
<beans:property name="location" value="classpath:application.properties" />  
</beans:bean>  

</beans:beans>  
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • A-pZ

    2018/12/12 00:56

    設定とソースコードは、コードブロックで1つ1つ囲いましょう。質問投稿後でも編集できます。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る