Advertisement
Guest User

Untitled

a guest
Apr 12th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. @EnableWebMvc
  2. @Configuration
  3. @ComponentScan({ "com.rgh.*" })
  4. @EnableTransactionManagement
  5. @Import({ SpringSecurityConfig.class })
  6. public class SpringWebConfig extends WebMvcConfigurerAdapter {
  7. @Override
  8. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  9. registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
  10. }
  11.  
  12. // Start localization configs
  13. @Bean
  14. public MessageSource messageSource() {
  15. final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
  16. messageSource.setBasename("classpath:messages");
  17. messageSource.setDefaultEncoding("UTF-8");
  18. return messageSource;
  19. }
  20.  
  21. @Bean
  22. public LocaleResolver localeResolver() {
  23. CookieLocaleResolver localeResolver = new CookieLocaleResolver();
  24. localeResolver.setDefaultLocale(new Locale("fa"));
  25. return localeResolver;
  26. }
  27.  
  28. @Bean
  29. public LocaleChangeInterceptor localeChangeInterceptor() {
  30. LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
  31. localeChangeInterceptor.setParamName("lang");
  32. return localeChangeInterceptor;
  33. }
  34.  
  35. @Override
  36. public void addInterceptors(InterceptorRegistry registry) {
  37. registry.addInterceptor(localeChangeInterceptor());
  38. }
  39. // End localization configs
  40.  
  41. @Bean
  42. public SessionFactory sessionFactory() {
  43. LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource());
  44. builder.scanPackages("com.rgh.*.model").addProperties(getHibernateProperties());
  45. return builder.buildSessionFactory();
  46. }
  47.  
  48. private Properties getHibernateProperties() {
  49. Properties properties = new Properties();
  50. properties.put("hibernate.format.sql", "false");
  51. properties.put("hibernate.show.sql", "true");
  52. properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
  53. properties.put("hibernate.hbm2ddl.auto", "update");
  54. return properties;
  55. }
  56.  
  57. @Bean(name = "dataSource")
  58. public BasicDataSource dataSource() {
  59. BasicDataSource dataSource = new BasicDataSource();
  60. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  61. dataSource.setUrl("jdbc:mysql://localhost:3306/framework");
  62. dataSource.setUsername("root");
  63. dataSource.setPassword("root");
  64. return dataSource;
  65. }
  66.  
  67. @Bean
  68. public HibernateTransactionManager txManager() {
  69. return new HibernateTransactionManager(sessionFactory());
  70. }
  71.  
  72. @Bean
  73. public InternalResourceViewResolver viewResolver() {
  74. InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
  75. viewResolver.setViewClass(JstlView.class);
  76. viewResolver.setPrefix("/view/");
  77. viewResolver.setSuffix(".jsp");
  78.  
  79. return viewResolver;
  80. }
  81. }
  82.  
  83. public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  84.  
  85. @Override
  86. protected Class<?>[] getRootConfigClasses() {
  87. return new Class[]{SpringWebConfig.class};
  88. }
  89.  
  90. @Override
  91. protected Class<?>[] getServletConfigClasses() {
  92. return null;
  93. }
  94.  
  95. @Override
  96. protected String[] getServletMappings() {
  97. return new String[]{"/"};
  98. }
  99. }
  100.  
  101. public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  102. @Override
  103. protected Class<?>[] getServletConfigClasses() {
  104. return new Class[] { SpringWebConfig.class };
  105. }
  106.  
  107. @Override
  108. protected Class<?>[] getRootConfigClasses() {
  109. return new Class[] { SpringSecurityConfig.class, SpringPersistanceConfig.class };
  110. }
  111.  
  112. @Override
  113. protected String[] getServletMappings() {
  114. return new String[] { "/", "/rest/*" };
  115. }
  116. }
  117.  
  118. @Configuration
  119. @EnableWebSecurity
  120. public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
  121. @Autowired
  122. @Qualifier("userDetailsService")
  123. UserDetailsService userDetailsService;
  124.  
  125. @Autowired
  126. public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
  127. auth.userDetailsService(userDetailsService);
  128. }
  129.  
  130. @Override
  131. protected void configure(HttpSecurity http) throws Exception {
  132. http.headers().frameOptions().sameOrigin();
  133. http.authorizeRequests().antMatchers("/assets/**").permitAll().antMatchers("/admin/**").access("hasRole('ROLE_USER')").and().formLogin().loginPage("/login").failureUrl("/login?error").defaultSuccessUrl("/admin").usernameParameter("username").passwordParameter("password").and().logout().logoutSuccessUrl("/login?logout");
  134. }
  135. }
  136.  
  137. @Configuration
  138. @EnableTransactionManagement
  139. @ComponentScan(basePackages = { "com.rgh.*" }, excludeFilters = { @Filter(Controller.class) })
  140. public class SpringPersistanceConfig {
  141.  
  142. @Bean
  143. public SessionFactory sessionFactory() {
  144. LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource());
  145. builder.scanPackages("com.rgh.*.model").addProperties(getHibernateProperties());
  146. return builder.buildSessionFactory();
  147. }
  148.  
  149. private Properties getHibernateProperties() {
  150. Properties properties = new Properties();
  151. properties.put("hibernate.format.sql", "false");
  152. properties.put("hibernate.show.sql", "true");
  153. properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
  154. properties.put("hibernate.hbm2ddl.auto", "update");
  155. return properties;
  156. }
  157.  
  158. @Bean(name = "dataSource")
  159. public BasicDataSource dataSource() {
  160. BasicDataSource dataSource = new BasicDataSource();
  161. dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  162. dataSource.setUrl("jdbc:mysql://localhost:3306/framework");
  163. dataSource.setUsername("root");
  164. dataSource.setPassword("root");
  165. return dataSource;
  166. }
  167.  
  168. @Bean
  169. public HibernateTransactionManager txManager() {
  170. return new HibernateTransactionManager(sessionFactory());
  171. }
  172. }
  173.  
  174. @Controller
  175. public class BaseController {
  176.  
  177. @RequestMapping(value = "/admin**", method = RequestMethod.GET)
  178. public ModelAndView adminPage() {
  179. ModelAndView model = new ModelAndView();
  180. model.setViewName("/panel/admin");
  181. return model;
  182. }
  183.  
  184. @RequestMapping(value = "/login", method = RequestMethod.GET)
  185. public ModelAndView login() {
  186. ModelAndView model = new ModelAndView();
  187. model.setViewName("/panel/login");
  188.  
  189. return model;
  190. }
  191. }
  192.  
  193. @Configuration
  194. @EnableTransactionManagement
  195. @ComponentScan({ "com.rgh"}, excludeFilters = {
  196. @Filter(org.springframework.stereotype.Controller.class)
  197. })
  198. public class PersistenceConfiguration {
  199.  
  200. // Hibernate, transaction manager, datasource and messageSource go here
  201.  
  202. }
  203.  
  204. @EnableWebMvc
  205. @Configuration
  206. @ComponentScan({ "com.rgh"}, includeFilters = {
  207. @Filter(org.springframework.stereotype.Controller.class)
  208. }, useDefaultFilters=false )
  209. public class SpringWebConfig extends WebMvcConfigurerAdapter {
  210.  
  211. /// web related things like view resolvers, controller, interceptors go here
  212.  
  213. }
  214.  
  215. public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  216.  
  217. @Override
  218. protected Class<?>[] getRootConfigClasses() {
  219. return new Class[]{SpringWebSecurity.class, PersistenceConfiguration.class};
  220. }
  221.  
  222. @Override
  223. protected Class<?>[] getServletConfigClasses() {
  224. return new Class[] { SpringWebConfig.class};
  225. }
  226.  
  227. @Override
  228. protected String[] getServletMappings() {
  229. return new String[]{"/"};
  230. }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement