From aa09ae2ee27949ace7876822c4ae95a46e5c6899 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Wed, 5 Sep 2012 15:08:57 +0200 Subject: [PATCH] Added servlet to handle JSON data in path "/api" --- .../java/de/thm/arsnova/LoginController.java | 11 ++--- .../de/thm/arsnova/SessionController.java | 6 +++ src/main/webapp/WEB-INF/api-servlet.xml | 44 +++++++++++++++++++ src/main/webapp/WEB-INF/arsnova-servlet.xml | 32 +++----------- src/main/webapp/WEB-INF/web.xml | 10 ++++- 5 files changed, 68 insertions(+), 35 deletions(-) create mode 100644 src/main/webapp/WEB-INF/api-servlet.xml diff --git a/src/main/java/de/thm/arsnova/LoginController.java b/src/main/java/de/thm/arsnova/LoginController.java index 53244247d..1b8687e3b 100644 --- a/src/main/java/de/thm/arsnova/LoginController.java +++ b/src/main/java/de/thm/arsnova/LoginController.java @@ -72,13 +72,8 @@ public class LoginController { return new ModelAndView("redirect:/#auth/checkCasLogin/" + userHash); } - @RequestMapping(method = RequestMethod.GET, value = "/doFacebookLogin") - public ModelAndView doFacebookLogin() { - return new ModelAndView("redirect:/#auth/checkCasLogin/"); - } - - @RequestMapping(method = RequestMethod.GET, value = "/doTwitterLogin") - public ModelAndView doTwitterLogin() { - return new ModelAndView("redirect:/#auth/checkCasLogin/"); + @RequestMapping(method = RequestMethod.GET, value = "/doOpenIdLogin") + public ModelAndView doGuestLogin() { + return null; } } diff --git a/src/main/java/de/thm/arsnova/SessionController.java b/src/main/java/de/thm/arsnova/SessionController.java index 334969898..21c057db0 100644 --- a/src/main/java/de/thm/arsnova/SessionController.java +++ b/src/main/java/de/thm/arsnova/SessionController.java @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import de.thm.arsnova.entities.Session; +import de.thm.arsnova.services.IAuthenticationService; import de.thm.arsnova.services.ISessionService; @Controller @@ -17,11 +18,16 @@ public class SessionController { @Autowired ISessionService sessionService; + @Autowired + IAuthenticationService authenticationService; + @RequestMapping("/session/{sessionkey}") public Session getSession(@PathVariable String sessionkey, HttpServletResponse response) { Session session = sessionService.getSession(sessionkey); if (session != null) return session; + authenticationService.getUsername(); + response.setStatus(HttpStatus.NOT_FOUND.value()); return null; } diff --git a/src/main/webapp/WEB-INF/api-servlet.xml b/src/main/webapp/WEB-INF/api-servlet.xml new file mode 100644 index 000000000..a68df8e7c --- /dev/null +++ b/src/main/webapp/WEB-INF/api-servlet.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" + xmlns:security="http://www.springframework.org/schema/security" + xmlns:mvc="http://www.springframework.org/schema/mvc" + xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd + http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.4.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> + + <context:component-scan base-package="de.thm.arsnova" /> + <context:annotation-config /> + + <mvc:annotation-driven /> + + <bean + class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> + <bean + class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> + <property name="messageConverters"> + <list> + <bean + class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> + </list> + </property> + </bean> + + <bean + class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> + <property name="mediaTypes"> + <map> + <entry key="json" value="application/json" /> + </map> + </property> + + <property name="defaultViews"> + <list> + <bean + class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> + </list> + </property> + </bean> + +</beans> diff --git a/src/main/webapp/WEB-INF/arsnova-servlet.xml b/src/main/webapp/WEB-INF/arsnova-servlet.xml index 9b8f48148..3a90da7ea 100644 --- a/src/main/webapp/WEB-INF/arsnova-servlet.xml +++ b/src/main/webapp/WEB-INF/arsnova-servlet.xml @@ -28,32 +28,12 @@ <mvc:annotation-driven /> - <bean - class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> - <bean - class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> - <property name="messageConverters"> - <list> - <bean - class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> - </list> - </property> - </bean> - - <bean - class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> - <property name="mediaTypes"> - <map> - <entry key="json" value="application/json" /> - </map> - </property> - - <property name="defaultViews"> - <list> - <bean - class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> - </list> - </property> + <bean id="viewResolver" + class="org.springframework.web.servlet.view.InternalResourceViewResolver"> + <property name="viewClass" + value="org.springframework.web.servlet.view.JstlView" /> + <property name="prefix" value="/WEB-INF/views/" /> + <property name="suffix" value=".jsp" /> </bean> </beans> diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 5140b1f41..e051aa8ec 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -29,6 +29,15 @@ <servlet-name>arsnova</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> + <servlet> + <servlet-name>api</servlet-name> + <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>api</servlet-name> + <url-pattern>/api/*</url-pattern> + </servlet-mapping> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> @@ -36,7 +45,6 @@ <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> - <!--dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher --> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> -- GitLab