Skip to content

Commit

Permalink
Integrated Spring Boot and removed WEB-INF XML files
Browse files Browse the repository at this point in the history
  • Loading branch information
mraible committed Dec 11, 2013
1 parent 740c08b commit 45c6867
Show file tree
Hide file tree
Showing 9 changed files with 133 additions and 87 deletions.
49 changes: 26 additions & 23 deletions pom.xml
Expand Up @@ -9,6 +9,12 @@

<url>https://github.com/mraible/boot-makeover</url>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.M6</version>
</parent>

<properties>
<jackson.version>2.2.3</jackson.version>
<jersey.version>2.4.1</jersey.version>
Expand Down Expand Up @@ -49,6 +55,12 @@
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>

<dependencies>
<dependency>
Expand Down Expand Up @@ -77,44 +89,35 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>

<!-- Spring Security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
</dependencies>

<build>
<finalName>boot-makeover</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
Expand Down
@@ -0,0 +1,34 @@
package com.raibledesigns.boot.config;

import org.glassfish.jersey.servlet.ServletContainer;
import org.glassfish.jersey.servlet.ServletProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.boot.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class ApplicationInitializer extends SpringBootServletInitializer {

@Bean
public ServletRegistrationBean jerseyServlet() {
ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/");
registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, JerseyConfig.class.getName());
return registration;
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ApplicationInitializer.class);
}

public static void main(String[] args) {
SpringApplication.run(ApplicationInitializer.class, args);
}
}
22 changes: 22 additions & 0 deletions src/main/java/com/raibledesigns/boot/config/JerseyConfig.java
@@ -0,0 +1,22 @@
package com.raibledesigns.boot.config;

import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.ServerProperties;

import javax.ws.rs.ApplicationPath;

@ApplicationPath("/v1.0")
public class JerseyConfig extends ResourceConfig {

public JerseyConfig() {
packages("com.raibledesigns.boot.service");
property(ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
property(ServerProperties.JSON_PROCESSING_FEATURE_DISABLE, false);
property(ServerProperties.MOXY_JSON_FEATURE_DISABLE, true);
property(ServerProperties.WADL_FEATURE_DISABLE, true);
register(LoggingFilter.class);
register(JacksonFeature.class);
}
}
15 changes: 15 additions & 0 deletions src/main/java/com/raibledesigns/boot/config/MvcConfig.java
@@ -0,0 +1,15 @@
package com.raibledesigns.boot.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}

}
29 changes: 29 additions & 0 deletions src/main/java/com/raibledesigns/boot/config/WebSecurityConfig.java
@@ -0,0 +1,29 @@
package com.raibledesigns.boot.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
@Order(Ordered.LOWEST_PRECEDENCE - 6)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.antMatchers("/rest/**").hasRole("USER")
.anyRequest().authenticated();
http.httpBasic().realmName("My API");
}

@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder.inMemoryAuthentication()
.withUser("test").password("test123").roles("USER");
}
}
6 changes: 6 additions & 0 deletions src/main/resources/logback.xml
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.boot" level="INFO"/>
<logger name="org.springframework.security" level="ERROR"/>
</configuration>
22 changes: 0 additions & 22 deletions src/main/webapp/WEB-INF/spring-security.xml

This file was deleted.

41 changes: 0 additions & 41 deletions src/main/webapp/WEB-INF/web.xml

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/webapp/index.jsp → src/main/webapp/index.html
Expand Up @@ -6,6 +6,6 @@
<body>
<h1>Welcome</h1>

<p><a href="rest/hello">Say Hey</a></p>
<p><a href="v1.0/hello">Say Hey</a></p>
</body>
</html>

0 comments on commit 45c6867

Please sign in to comment.