java - When I try to run my WEB Application I get this error -


this question has answer here:

05-jan-2016 23:44:35.610 severe [http-apr-8080-exec-2] org.springframework.security.web.authentication.usernamepasswordauthenticationfilter.dofilter internal error occurred while trying authenticate user.

org.springframework.security.authentication.internalauthenticationserviceexception caused by: java.lang.nullpointerexception @ dao.userdaoimpl.getuser(userdaoimpl.java:36) @ service.userdetailsserviceimpl.loaduserbyusername(userdetailsserviceimpl.java:38) @ org.springframework.security.authentication.dao.daoauthenticationprovider.retrieveuser(daoauthenticationprovider.java:102)

my web.xml

<display-name>spring mvc application</display-name>  <context-param>     <param-name>contextconfiglocation</param-name>     <param-value>         /web-inf/mvc-dispatcher-security.xml         /web-inf/mvc-dispatcher-servlet.xml      </param-value>  </context-param>  <listener>     <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener>  <servlet>     <servlet-name>mvc-dispatcher</servlet-name>     <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>     <load-on-startup>1</load-on-startup> </servlet>  <servlet-mapping>     <servlet-name>mvc-dispatcher</servlet-name>     <url-pattern>/</url-pattern> </servlet-mapping>  <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> 

security.xml

   <security:http auto-config="true"  >             <security:intercept-url pattern="/admin-panel" access="role_admin"/>           <security:intercept-url pattern="/user_panel" access= "role_user"/>              <security:form-login login-page="/welcome"                                  default-target-url="/default"                                 username-parameter="username"                                 password-parameter="password"/>      </security:http>              <bean  class="service.userdetailsserviceimpl" id="userdetailsservice" autowire="bytype">      </bean>    <security:authentication-manager  >           <security:authentication-provider user-service-ref="userdetailsservice">             </security:authentication-provider>    </security:authentication-manager> 

servlet.xml

<context:component-scan base-package="springapp.mvc,service,dao,domain"/>  <context:annotation-config/>       <mvc:annotation-driven/>      <mvc:default-servlet-handler />      <mvc:resources mapping="/resources/**" location="resources/">     </mvc:resources>    <bean class="org.springframework.web.servlet.view.internalresourceviewresolver">         <property name="prefix" value="/web-inf/pages/"/>         <property name="suffix" value=".jsp"/>     </bean>        <bean id="template" class="org.springframework.jdbc.core.jdbctemplate">         <property name="datasource" ref="datasource">          </property>     </bean>      <bean id="datasource"           class="org.springframework.jdbc.datasource.drivermanagerdatasource">          <property name="driverclassname" value="com.mysql.jdbc.driver"/>         <property name="url" value="jdbc:mysql://localhost:3306/votingsystem"/>         <property name="username" value="root"/>         <property name="password" value="anl14anl14"/>     </bean> 

user.java

package domain;  public class user  {      private string username;     private string password;     private string role;         public user(string username, string password,string role )      {          this.username = username;         this.password = password;         this.role=role;      }      public user() {      }      public boolean enter(string username, string password) {         this.username = username;         this.password = password;         return true;     }      public string getusername() {         return username;     }      public void setusername(string username) {         this.username = username;     }      public string getpassword() {         return password;     }      public void setpassword(string password) {         this.password = password;     }      public string getrole() {         return role;     }      public void setrole(string role) {         this.role = role;     } } 

userdao.java

package dao;  import domain.user; import org.springframework.security.core.userdetails.userdetailsservice;  import java.util.list;   public interface userdao {      public user getuser(string username);   } 

userdaoimpl.java

package dao;  import domain.user; import domain.usermapper; import org.springframework.beans.factory.annotation.autowired; import org.springframework.jdbc.core.jdbctemplate; import org.springframework.security.core.userdetails.userdetails; import org.springframework.security.core.userdetails.userdetailsservice; import org.springframework.security.core.userdetails.usernamenotfoundexception; import org.springframework.stereotype.repository;      @repository public class userdaoimpl implements userdao  {       private jdbctemplate template;      private static final string find = "select role users username = ? ";      public userdaoimpl() {      }      @override     public user getuser(string username) {           return template.queryforobject(find, new object[]{username}, user.class);     }   } 

userdetailsserviceimpl.java

package service;  import dao.userdao; import domain.user; import org.springframework.beans.factory.annotation.autowired; import org.springframework.security.core.grantedauthority; import org.springframework.security.core.userdetails.userdetails; import org.springframework.security.core.userdetails.userdetailsservice; import org.springframework.security.core.userdetails.usernamenotfoundexception; import org.springframework.security.core.authority.simplegrantedauthority; import org.springframework.stereotype.service;  import java.util.arraylist; import java.util.collection; import java.util.hashset; import java.util.set;   @service public class userdetailsserviceimpl implements userdetailsservice  {  @autowired userdao userdao;        @override     public userdetails loaduserbyusername(string username)              throws usernamenotfoundexception       {         user user =  userdao.getuser(username);          set<grantedauthority> roles = new hashset();         if (user.getrole().equals("admin"))             roles.add(new simplegrantedauthority("role_admin"));         else if (user.getrole().equals("user"))             roles.add(new simplegrantedauthority("role_user"));        userdetails userdetails =new org.springframework.security.core.userdetails.user(user.getusername(),user.getpassword(),roles);         return userdetails;            }      } 

controller.java

package springapp.mvc;  import dao.userdao; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.ui.modelmap; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.bind.annotation.requestparam; import org.springframework.web.servlet.modelandview;  import javax.servlet.http.httpservletrequest;  @controller  public class hellocontroller {        @requestmapping (value = "/welcome")       public string ( model model )     {          return "welcome";     }           @requestmapping (value = "/default")          public string adminpage ( httpservletrequest request) {       if (request.isuserinrole("role_admin")) {           return "redirect:/admin-panel";       }       else if (request.isuserinrole("role_user"))      {          return "redirect:/user_panel";      }       return "redirect:/welcome";  }      @requestmapping (value = "/user_panel")      public modelandview regpage ()     {         modelandview modelandview  = new modelandview();         modelandview.setviewname("user_panel");         return modelandview;       }      @requestmapping (value = "/admin-panel")      public modelandview adminpage ()     {         modelandview modelandview  = new modelandview();         modelandview.setviewname("admin-panel");         return modelandview;       }     } 

welcome.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html>  <head> <title> hello </title> <meta charset="utf-8">  <c:url value="/resources/theme/css/main1.css" var="main"/>      <link href="${main}" rel="stylesheet"/>    </head>  <body>    <div id="wrapper" >  <div id="header">   <h1> access elections  </h1>  </div>      <div id="form_user">      <div id="registration "> </div>            <div class="form">             <form method="post">                 <div class="youinfo">                     <div class="info youname">                         <label for="name">name<input type="text" id="name" required /><span></span></label>                            <label for="login">login<input type="email" id="login" required /><span></span></label>                         <label for="password1">password<input type="password" id="password1" required /><span></span></label>                          <button type="submit">register</button>                     </div>                </div>                 </form>         </div>          <p id="part">  </p>          <div id="enter"> </div>          <div class="form">             <form action="/j_spring_security_check" method="post"  >                 <div class="enter">                     <div class="enterin">                         <label for="username">login<input type="text" name="username" id="username"/><span></span></label>                         <label for="password">password <input type="password" name="password" id="password"  /><span></span></label>                          <button type="submit">sign in</button>                     </div>                   </div>             </form>         </div>      </div>       <div id ="footer"> </div>       </div>     </body> </html> 

you might missing @autowired on private jdbctemplate template; in userdaoimpl.java.

@repository public class userdaoimpl implements userdao {     @autowired     private jdbctemplate template;      ... } 

Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -