Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @EnableWebMvc
- @Configuration
- @ComponentScan({ "com.rgh.*" })
- @EnableTransactionManagement
- @Import({ SpringSecurityConfig.class })
- public class SpringWebConfig extends WebMvcConfigurerAdapter {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
- }
- // Start localization configs
- @Bean
- public MessageSource messageSource() {
- final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
- messageSource.setBasename("classpath:messages");
- messageSource.setDefaultEncoding("UTF-8");
- return messageSource;
- }
- @Bean
- public LocaleResolver localeResolver() {
- CookieLocaleResolver localeResolver = new CookieLocaleResolver();
- localeResolver.setDefaultLocale(new Locale("fa"));
- return localeResolver;
- }
- @Bean
- public LocaleChangeInterceptor localeChangeInterceptor() {
- LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
- localeChangeInterceptor.setParamName("lang");
- return localeChangeInterceptor;
- }
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(localeChangeInterceptor());
- }
- // End localization configs
- @Bean
- public SessionFactory sessionFactory() {
- LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource());
- builder.scanPackages("com.rgh.*.model").addProperties(getHibernateProperties());
- return builder.buildSessionFactory();
- }
- private Properties getHibernateProperties() {
- Properties properties = new Properties();
- properties.put("hibernate.format.sql", "false");
- properties.put("hibernate.show.sql", "true");
- properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
- properties.put("hibernate.hbm2ddl.auto", "update");
- return properties;
- }
- @Bean(name = "dataSource")
- public BasicDataSource dataSource() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName("com.mysql.jdbc.Driver");
- dataSource.setUrl("jdbc:mysql://localhost:3306/framework");
- dataSource.setUsername("root");
- dataSource.setPassword("root");
- return dataSource;
- }
- @Bean
- public HibernateTransactionManager txManager() {
- return new HibernateTransactionManager(sessionFactory());
- }
- @Bean
- public InternalResourceViewResolver viewResolver() {
- InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
- viewResolver.setViewClass(JstlView.class);
- viewResolver.setPrefix("/view/");
- viewResolver.setSuffix(".jsp");
- return viewResolver;
- }
- }
- public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class[]{SpringWebConfig.class};
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return null;
- }
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
- }
- public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class[] { SpringWebConfig.class };
- }
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class[] { SpringSecurityConfig.class, SpringPersistanceConfig.class };
- }
- @Override
- protected String[] getServletMappings() {
- return new String[] { "/", "/rest/*" };
- }
- }
- @Configuration
- @EnableWebSecurity
- public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
- @Autowired
- @Qualifier("userDetailsService")
- UserDetailsService userDetailsService;
- @Autowired
- public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
- auth.userDetailsService(userDetailsService);
- }
- @Override
- protected void configure(HttpSecurity http) throws Exception {
- http.headers().frameOptions().sameOrigin();
- 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");
- }
- }
- @Configuration
- @EnableTransactionManagement
- @ComponentScan(basePackages = { "com.rgh.*" }, excludeFilters = { @Filter(Controller.class) })
- public class SpringPersistanceConfig {
- @Bean
- public SessionFactory sessionFactory() {
- LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource());
- builder.scanPackages("com.rgh.*.model").addProperties(getHibernateProperties());
- return builder.buildSessionFactory();
- }
- private Properties getHibernateProperties() {
- Properties properties = new Properties();
- properties.put("hibernate.format.sql", "false");
- properties.put("hibernate.show.sql", "true");
- properties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
- properties.put("hibernate.hbm2ddl.auto", "update");
- return properties;
- }
- @Bean(name = "dataSource")
- public BasicDataSource dataSource() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName("com.mysql.jdbc.Driver");
- dataSource.setUrl("jdbc:mysql://localhost:3306/framework");
- dataSource.setUsername("root");
- dataSource.setPassword("root");
- return dataSource;
- }
- @Bean
- public HibernateTransactionManager txManager() {
- return new HibernateTransactionManager(sessionFactory());
- }
- }
- @Controller
- public class BaseController {
- @RequestMapping(value = "/admin**", method = RequestMethod.GET)
- public ModelAndView adminPage() {
- ModelAndView model = new ModelAndView();
- model.setViewName("/panel/admin");
- return model;
- }
- @RequestMapping(value = "/login", method = RequestMethod.GET)
- public ModelAndView login() {
- ModelAndView model = new ModelAndView();
- model.setViewName("/panel/login");
- return model;
- }
- }
- @Configuration
- @EnableTransactionManagement
- @ComponentScan({ "com.rgh"}, excludeFilters = {
- @Filter(org.springframework.stereotype.Controller.class)
- })
- public class PersistenceConfiguration {
- // Hibernate, transaction manager, datasource and messageSource go here
- }
- @EnableWebMvc
- @Configuration
- @ComponentScan({ "com.rgh"}, includeFilters = {
- @Filter(org.springframework.stereotype.Controller.class)
- }, useDefaultFilters=false )
- public class SpringWebConfig extends WebMvcConfigurerAdapter {
- /// web related things like view resolvers, controller, interceptors go here
- }
- public class SpringWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class[]{SpringWebSecurity.class, PersistenceConfiguration.class};
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class[] { SpringWebConfig.class};
- }
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement