Guest User

Untitled

a guest
Nov 23rd, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.25 KB | None | 0 0
  1. INFO: Starting Coyote HTTP/1.1 on http-8080
  2. Sep 11, 2014 5:12:54 PM org.apache.catalina.core.StandardWrapperValve invoke
  3. SEVERE: Servlet.service() for servlet mvc-dispatcher threw exception
  4. org.hibernate.HibernateException: No Session found for current thread
  5. at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
  6. at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:988)
  7. at com.mytravly.travlyweb.dao.AbstractHibernateDAO.getCurrentSession(AbstractHibernateDAO.java:52)
  8. at com.mytravly.travlyweb.dao.AbstractHibernateDAO.findAll(AbstractHibernateDAO.java:30)
  9. at com.mytravly.travlyweb.service.UserService.getAll(UserService.java:35)
  10. at com.mytravly.travlyweb.controller.MainController.defaultPage(MainController.java:35)
  11. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  12. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  13. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  14. at java.lang.reflect.Method.invoke(Method.java:601)
  15. at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
  16. at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
  17. at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
  18. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
  19. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
  20. at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
  21. at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
  22. at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
  23. at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
  24. at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
  25. at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
  26. at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
  27. at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
  28. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  29. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  30. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
  31. at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
  32. at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
  33. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  34. at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
  35. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  36. at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
  37. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  38. at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
  39. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  40. at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
  41. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  42. at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
  43. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  44. at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
  45. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  46. at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
  47. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  48. at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
  49. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  50. at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:85)
  51. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  52. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  53. at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
  54. at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
  55. at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
  56. at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
  57. at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
  58. at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
  59. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  60. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  61. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  62. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  63. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  64. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  65. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  66. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
  67. at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
  68. at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
  69. at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  70. at java.lang.Thread.run(Thread.java:722)
  71.  
  72. <display-name>TravlyWeb</display-name>
  73.  
  74. <!-- Spring MVC -->
  75. <servlet>
  76. <servlet-name>mvc-dispatcher</servlet-name>
  77. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  78. <load-on-startup>1</load-on-startup>
  79. </servlet>
  80. <servlet-mapping>
  81. <servlet-name>mvc-dispatcher</servlet-name>
  82. <url-pattern>/</url-pattern>
  83. </servlet-mapping>
  84.  
  85. <listener>
  86. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  87. </listener>
  88.  
  89. <context-param>
  90. <param-name>contextConfigLocation</param-name>
  91. <param-value>
  92. /WEB-INF/spring-database.xml,
  93. /WEB-INF/spring-security.xml
  94. </param-value>
  95. </context-param>
  96.  
  97. <!-- Spring Security -->
  98. <filter>
  99. <filter-name>springSecurityFilterChain</filter-name>
  100. <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  101. </filter>
  102.  
  103. <filter-mapping>
  104. <filter-name>springSecurityFilterChain</filter-name>
  105. <url-pattern>/*</url-pattern>
  106. </filter-mapping>
  107.  
  108. </web-app>
  109.  
  110. <beans xmlns="http://www.springframework.org/schema/beans"
  111. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  112. xmlns:tx="http://www.springframework.org/schema/tx"
  113. xsi:schemaLocation="http://www.springframework.org/schema/beans
  114. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  115. http://www.springframework.org/schema/aop
  116. http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  117. http://www.springframework.org/schema/tx
  118. http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
  119.  
  120.  
  121.  
  122. <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
  123. destroy-method="close">
  124. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  125. <property name="url" value="jdbc:mysql://localhost:3306/travlywebdb" />
  126. <property name="username" value="root" />
  127. <property name="password" value="" />
  128. <property name="validationQuery" value="SELECT 1" />
  129. </bean>
  130.  
  131. <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  132. <property name="dataSource" ref="myDataSource"/>
  133. <property name="packagesToScan">
  134. <array>
  135. <value>com.mytravly.travlyweb</value>
  136. </array>
  137. </property>
  138. <property name="hibernateProperties">
  139. <value>
  140. hibernate.dialect=org.hibernate.dialect.MySQLDialect
  141. </value>
  142. </property>
  143. </bean>
  144.  
  145. <!--
  146. <bean id="userDao" class="com.mytravly.travlyweb.dao.UserDaoImpl">
  147. <property name="sessionFactory" ref="mySessionFactory" />
  148. </bean>
  149.  
  150.  
  151. <bean id="myUserDetailsService" class="com.mytravly.travlyweb.service.MyUserDetailsService">
  152. <property name="userDao" ref="userDao" />
  153. </bean> -->
  154. <!-- Hibernate Transaction Manager -->
  155. <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  156. <property name="sessionFactory" ref="mySessionFactory"/>
  157. </bean>
  158.  
  159. <!-- Activates annotation based transaction management -->
  160. <tx:annotation-driven transaction-manager="transactionManager"/>
  161.  
  162.  
  163.  
  164. </beans>
  165.  
  166. <beans xmlns="http://www.springframework.org/schema/beans"
  167. xmlns:context="http://www.springframework.org/schema/context"
  168. xmlns:mvc="http://www.springframework.org/schema/mvc"
  169. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  170. xsi:schemaLocation="
  171. http://www.springframework.org/schema/beans
  172. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  173. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
  174. http://www.springframework.org/schema/context
  175. http://www.springframework.org/schema/context/spring-context-3.2.xsd">
  176.  
  177. <!-- Enable @Controller annotation support -->
  178. <mvc:annotation-driven />
  179.  
  180. <context:component-scan base-package="com.mytravly.travlyweb" />
  181.  
  182. <bean
  183. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  184. <property name="prefix">
  185. <value>/WEB-INF/pages/</value>
  186. </property>
  187. <property name="suffix">
  188. <value>.jsp</value>
  189. </property>
  190. </bean>
  191.  
  192. </beans>
  193.  
  194. <beans:beans xmlns="http://www.springframework.org/schema/security"
  195. xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  196. xsi:schemaLocation="http://www.springframework.org/schema/beans
  197. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  198. http://www.springframework.org/schema/security
  199. http://www.springframework.org/schema/security/spring-security-3.2.xsd">
  200.  
  201. <!-- enable use-expressions -->
  202. <http auto-config="true" use-expressions="true">
  203. <intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" />
  204.  
  205. <!-- access denied page -->
  206. <access-denied-handler error-page="/403" />
  207. <form-login login-page="/login" default-target-url="/welcome"
  208. authentication-failure-url="/login?error" username-parameter="username"
  209. password-parameter="password" />
  210. <logout logout-success-url="/login?logout" />
  211. <!-- enable csrf protection -->
  212. <csrf />
  213. </http>
  214. <!--
  215. <authentication-manager>
  216. <authentication-provider user-service-ref="myUserDetailsService">
  217. <password-encoder hash="plaintext" />
  218. </authentication-provider>
  219. </authentication-manager> -->
  220.  
  221. <authentication-manager>
  222. <authentication-provider>
  223. <jdbc-user-service data-source-ref="myDataSource"
  224. users-by-username-query="select username,password from user where username = ?"
  225. authorities-by-username-query="select username,authority from authorities where username = ?" />
  226. </authentication-provider>
  227. </authentication-manager>
  228.  
  229. </beans:beans>
  230.  
  231. package com.mytravly.travlyweb.controller;
  232.  
  233. import java.util.List;
  234.  
  235. import javax.servlet.http.HttpServletRequest;
  236.  
  237. import org.springframework.beans.factory.annotation.Autowired;
  238. import org.springframework.security.authentication.AnonymousAuthenticationToken;
  239. import org.springframework.security.authentication.BadCredentialsException;
  240. import org.springframework.security.authentication.LockedException;
  241. import org.springframework.security.core.Authentication;
  242. import org.springframework.security.core.context.SecurityContextHolder;
  243. import org.springframework.security.core.userdetails.UserDetails;
  244. import org.springframework.stereotype.Controller;
  245. import org.springframework.transaction.annotation.Propagation;
  246. import org.springframework.transaction.annotation.Transactional;
  247. import org.springframework.web.bind.annotation.RequestMapping;
  248. import org.springframework.web.bind.annotation.RequestMethod;
  249. import org.springframework.web.bind.annotation.RequestParam;
  250. import org.springframework.web.servlet.ModelAndView;
  251.  
  252. import com.mytravly.travlyweb.bean.User;
  253. import com.mytravly.travlyweb.service.UserService;
  254.  
  255. @Controller
  256. @Transactional(propagation = Propagation.REQUIRES_NEW)
  257. public class MainController {
  258.  
  259. @Autowired
  260. UserService service;
  261.  
  262. @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
  263. public ModelAndView defaultPage() {
  264.  
  265. List<User> list = service.getAll();
  266.  
  267. ModelAndView model = new ModelAndView();
  268. model.addObject("title", "Spring Security + Hibernate Example");
  269. model.addObject("message", list.get(0).getUsername());
  270.  
  271. model.setViewName("hello");
  272. return model;
  273.  
  274. }
  275.  
  276. @RequestMapping(value = "/admin**", method = RequestMethod.GET)
  277. public ModelAndView adminPage() {
  278.  
  279. ModelAndView model = new ModelAndView();
  280. model.addObject("title", "Spring Security + Hibernate Example");
  281. model.addObject("message", "This page is for ROLE_ADMIN only!");
  282. model.setViewName("admin");
  283.  
  284. return model;
  285.  
  286. }
  287.  
  288. @RequestMapping(value = "/login", method = RequestMethod.GET)
  289. public ModelAndView login(@RequestParam(value = "error", required = false) String error,
  290. @RequestParam(value = "logout", required = false) String logout, HttpServletRequest request) {
  291.  
  292.  
  293.  
  294. ModelAndView model = new ModelAndView();
  295. if (error != null) {
  296. model.addObject("error", getErrorMessage(request, "SPRING_SECURITY_LAST_EXCEPTION"));
  297. }
  298.  
  299. if (logout != null) {
  300. model.addObject("msg", "You've been logged out successfully.");
  301. }
  302. model.setViewName("login");
  303.  
  304. return model;
  305.  
  306. }
  307.  
  308. // customize the error message
  309. private String getErrorMessage(HttpServletRequest request, String key) {
  310.  
  311. Exception exception = (Exception) request.getSession().getAttribute(key);
  312.  
  313. String error = "";
  314. if (exception instanceof BadCredentialsException) {
  315. error = "Invalid username and password!";
  316. } else if (exception instanceof LockedException) {
  317. error = exception.getMessage();
  318. } else {
  319. error = "Invalid username and password!";
  320. }
  321.  
  322. return error;
  323. }
  324.  
  325. // for 403 access denied page
  326. @RequestMapping(value = "/403", method = RequestMethod.GET)
  327. public ModelAndView accesssDenied() {
  328.  
  329. ModelAndView model = new ModelAndView();
  330.  
  331. // check if user is login
  332. Authentication auth = SecurityContextHolder.getContext().getAuthentication();
  333. if (!(auth instanceof AnonymousAuthenticationToken)) {
  334. UserDetails userDetail = (UserDetails) auth.getPrincipal();
  335. System.out.println(userDetail);
  336.  
  337. model.addObject("username", userDetail.getUsername());
  338.  
  339. }
  340.  
  341. model.setViewName("403");
  342. return model;
  343.  
  344. }
  345.  
  346.  
  347.  
  348.  
  349.  
  350. /*@Autowired
  351. UserService userService;
  352.  
  353.  
  354. @Autowired
  355. TestBl bl;
  356.  
  357. @RequestMapping(value = "/login", method = RequestMethod.GET)
  358. public String login(Model model) {
  359.  
  360.  
  361. return "signin";
  362. }
  363. @RequestMapping(value = "/signup", method = RequestMethod.GET)
  364. public String signup(Model model) {
  365.  
  366.  
  367. return "signup";
  368. }
  369. @RequestMapping(value = "/dashboard", method = RequestMethod.GET)
  370. public String dashboard(Model model) {
  371.  
  372.  
  373. return "blank";
  374. }*/
  375.  
  376.  
  377. }
  378.  
  379. package com.mytravly.travlyweb.service;
  380.  
  381. import java.io.Serializable;
  382. import java.util.List;
  383.  
  384. import org.springframework.beans.factory.annotation.Autowired;
  385. import org.springframework.stereotype.Service;
  386. import org.springframework.transaction.annotation.Propagation;
  387. import org.springframework.transaction.annotation.Transactional;
  388.  
  389.  
  390.  
  391. import com.mytravly.travlyweb.bean.User;
  392. import com.mytravly.travlyweb.dao.AbstractHibernateDAO;
  393. import com.mytravly.travlyweb.dao.IGenericDAO;
  394.  
  395. @Service
  396. @Transactional(propagation = Propagation.MANDATORY)
  397. public class UserService {
  398.  
  399. public UserService() {
  400. // TODO Auto-generated constructor stub
  401. }
  402.  
  403. AbstractHibernateDAO<User> dao;
  404.  
  405. @Autowired
  406. public void setDao(final AbstractHibernateDAO<User> userDao) {
  407. dao = userDao;
  408. dao.setClazz(User.class);
  409. }
  410.  
  411. public List<User> getAll()
  412. {
  413. return dao.findAll();
  414.  
  415.  
  416. }
  417.  
  418.  
  419. }
  420.  
  421. import java.io.Serializable;
  422. import java.util.List;
  423.  
  424. import org.hibernate.Session;
  425. import org.hibernate.SessionFactory;
  426. import org.springframework.beans.factory.annotation.Autowired;
  427.  
  428. public abstract class AbstractHibernateDAO<T extends Serializable> {
  429.  
  430. private Class<T> clazz;
  431.  
  432. @Autowired
  433. SessionFactory sessionFactory;
  434.  
  435. public void setClazz(final Class<T> clazzToSet) {
  436. clazz = clazzToSet;
  437. }
  438.  
  439. public T getById(final Long id) {
  440. return (T) getCurrentSession().get(clazz, id);
  441. }
  442.  
  443. public List<T> findAll() {
  444. return getCurrentSession().createQuery("from " + clazz.getName())
  445. .list();
  446. }
  447.  
  448. public void save(final T entity) {
  449. getCurrentSession().persist(entity);
  450. }
  451.  
  452. public void update(final T entity) {
  453. getCurrentSession().merge(entity);
  454. }
  455.  
  456. public void delete(final T entity) {
  457. getCurrentSession().delete(entity);
  458. }
  459.  
  460. public void deleteById(final Long entityId) {
  461. final T entity = getById(entityId);
  462. delete(entity);
  463. }
  464.  
  465. protected Session getCurrentSession() {
  466. return sessionFactory.getCurrentSession();
  467. }
  468. }
  469.  
  470. @Service
  471. @Transactional(propagation = **Propagation.REQUIRED**)
  472. public class UserService {
Add Comment
Please, Sign In to add comment