Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.73 KB | None | 0 0
  1. <context:component-scan base-package="your.package.name" />
  2.  
  3. <context:component-scan base-package="your.package.name" />
  4. <tx:annotation-driven transaction-manager="transactionManager"/>
  5.  
  6. <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
  7.  
  8. <bean id="transactionManager"
  9. class="org.springframework.orm.jpa.JpaTransactionManager"
  10. p:entityManagerFactory-ref="entityManagerFactory" />
  11.  
  12. <bean id="entityManagerFactory"
  13. class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
  14. p:persistenceUnitName="persistenceUnitName"> <!-- this comes from persistence.xml -->
  15.  
  16. <property name="jpaVendorAdapter">
  17. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
  18. </property>
  19.  
  20. <property name="jpaProperties">
  21. <props>
  22. <prop key="hibernate.hbm2ddl.auto">validate</prop>
  23. <prop key="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</prop>
  24.  
  25. <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQL82Dialect</prop>
  26. <prop key="hibernate.connection.driver_class">org.postgresql.Driver</prop>
  27. <prop key="hibernate.connection.url">jdbc:postgresql://localhost:5432/myDB</prop>
  28. <prop key="hibernate.connection.username">username</prop>
  29. <prop key="hibernate.connection.password">password</prop>
  30.  
  31. <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
  32. <prop key="hibernate.id.new_generator_mappings">true</prop>
  33. <prop key="hibernate.show_sql">false</prop>
  34. <prop key="hibernate.jdbc.batch_size">50</prop>
  35. <prop key="hibernate.id.new_generator_mappings">true</prop>
  36. <prop key="hibernate.c3p0.maxSize">100</prop>
  37. <prop key="hibernate.c3p0.minSize">10</prop>
  38. <prop key="hibernate.c3p0.acquireIncrement">10</prop>
  39. <prop key="hibernate.c3p0.idleTestPeriod">300</prop>
  40. <prop key="hibernate.c3p0.maxStatements">0</prop>
  41. <prop key="hibernate.c3p0.timeout">1800</prop>
  42. <prop key="hibernate.c3p0.checkoutTimeout">0</prop>
  43. <prop key="hibernate.c3p0.preferredTestQuery">SELECT 1;</prop>
  44. </props>
  45. </property>
  46. </bean>
  47.  
  48. @SpringBootApplication
  49. @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
  50. public class StockServerApplication
  51. {
  52. public static void main(String[] args) throws IOException
  53. {
  54. // Check if settings exists
  55. if(!AppSettings.settingsFileExists()){
  56. AppSettings.writeExampleSettingsFile();
  57. System.out.println("Settings-file not found. Example file has been written in the root-dirnClosing...");
  58. System.exit(0);
  59. }
  60.  
  61. AppSettings.initialize();
  62.  
  63. if(!AppSettings.isValid()){
  64. System.exit(0);
  65. }
  66.  
  67. SpringApplication app = new SpringApplication(StockServerApplication.class);
  68.  
  69. Properties props = AppSettings.settingsToNativeProperties(AppSettings.applicationSettings);
  70. props.put("spring.thymeleaf.mode", "LEGACYHTML5");
  71. props.put("spring.thymeleaf.cache", "false");
  72. props.put("spring.jpa.database", "default");
  73. // Debug
  74. // props.put("debug", "true");
  75. app.setDefaultProperties(props);
  76. app.run(args);
  77. }
  78.  
  79. @Autowired
  80. private AuthorizedUserRepository repo;
  81.  
  82. @PostConstruct
  83. private void createAdmin(){
  84.  
  85. AuthorizedUser user = repo.getByUsername("Admin");
  86. if(user == null){
  87. // Generate admin-user
  88. String possiblePasswordCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  89. String generatedPassword = RandomStringUtils.random(10, possiblePasswordCharacters);
  90. user = new AuthorizedUser(null, null, "Admin", generatedPassword, null, AuthorizedUserRole.Admin);
  91. repo.save(user);
  92. System.out.println("nnCreated Admin-account with password: " + generatedPassword + "nn");
  93. }
  94. }
  95. }
  96.  
  97. @Configuration
  98. public class SecurityConfiguration extends WebSecurityConfigurerAdapter
  99. {
  100. @Autowired
  101. private AuthenticationFilter filter;
  102.  
  103. @Override
  104. protected void configure(HttpSecurity http) throws Exception
  105. {
  106. Settings.ServerSettings set = AppSettings.applicationSettings.getServerSettings();
  107. if(!set.isUseAuthentication())
  108. return;
  109.  
  110. System.out.println("Initializing security-settings");
  111.  
  112. http.csrf().disable().authorizeRequests()
  113. .antMatchers("/").permitAll()
  114. .antMatchers("/utils/**").permitAll()
  115. .antMatchers("/app/**").permitAll()
  116. .antMatchers("/authorize").permitAll()
  117. .antMatchers(HttpMethod.POST, "/users/add/*").hasAuthority(AuthorizedUserRole.Admin.toString())
  118. .antMatchers(HttpMethod.DELETE, "/users/delete/*").hasAuthority(AuthorizedUserRole.Admin.toString())
  119. .antMatchers(HttpMethod.GET, "/users/all/*").hasAuthority(AuthorizedUserRole.Admin.toString())
  120. .antMatchers(HttpMethod.PUT, "/users/changerole/*").hasAuthority(AuthorizedUserRole.Admin.toString())
  121. .anyRequest().authenticated()
  122. .and()
  123. .addFilterBefore(filter, UsernamePasswordAuthenticationFilter.class)
  124. .exceptionHandling()
  125. .authenticationEntryPoint(new AuthEntryPoint());
  126. }
  127.  
  128. @Bean
  129. public FilterRegistrationBean authenticationFilterRegistrationBean(){
  130. FilterRegistrationBean regBean = new FilterRegistrationBean();
  131. regBean.setFilter(filter);
  132. regBean.setOrder(1);
  133.  
  134. return regBean;
  135. }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement