Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import ro.nordicparts.odin.frontend.managedbeans.Login;
- import javax.faces.context.ExternalContext;
- import javax.faces.context.FacesContext;
- import javax.servlet.*;
- import javax.servlet.annotation.WebFilter;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- @WebFilter("/views/*")
- public class AuthenticationFilter implements Filter {
- private static final Logger LOG = LoggerFactory.getLogger(AuthenticationFilter.class);
- private FilterConfig config;
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
- LOG.info("AuthFilter doFilter");
- HttpServletRequest req = (HttpServletRequest) request;
- Login auth = (Login) req.getSession().getAttribute("login");
- if (auth != null && auth.isLoggedIn()) {
- // User is logged in, so just continue request.
- chain.doFilter(request, response);
- } else {
- // User is not logged in, so redirect to index.
- HttpServletResponse res = (HttpServletResponse) response;
- // Also check ajax requests, these need a special redirect response
- if ("partial/ajax".equals(((HttpServletRequest) request).getHeader("Faces-Request"))) {
- res.setContentType("text/xml");
- res.getWriter()
- .append("<?xml version="1.0" encoding="UTF-8"?>")
- .printf("<partial-response><redirect url="%s"></redirect></partial-response>", req.getContextPath() + "/login.xhtml");
- } else {
- res.sendRedirect(req.getContextPath() + "/login.xhtml");
- }
- }
- }
- public void init(FilterConfig config) throws ServletException {
- this.config = config;
- }
- public void destroy() {
- config = null;
- }
- }
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import ro.nordicparts.odin.model.jaxb.LoginResponse;
- import javax.annotation.PostConstruct;
- import javax.faces.application.FacesMessage;
- import javax.faces.bean.ManagedBean;
- import javax.faces.bean.ManagedProperty;
- import javax.faces.bean.SessionScoped;
- import javax.faces.context.FacesContext;
- import java.io.Serializable;
- import java.util.Locale;
- @ManagedBean(name="login")
- @SessionScoped
- public class Login implements Serializable {
- private static final Logger LOG = LoggerFactory.getLogger(Login.class);
- public static final String AUTH_KEY = "app.user.name";
- @ManagedProperty(value="#{sessionData}")
- private SessionData sessionData;
- private String username;
- private String password;
- private static final long serialVersionUID = 2156313213089107389L;
- public Login() { }
- public boolean isLoggedIn() {
- return sessionData.getLoginResponse() != null;
- }
- public String logoutAction() {
- FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
- .remove(AUTH_KEY);
- sessionData.setLoginResponse(null);
- return "/login.xhtml";
- }
- public String loginAction() {
- ILoginBO bo = (ILoginBO) ServiceFactory.getServiceImpl(LoginBO.class);
- try {
- LoginResponse loginResponse = loginBO.loginAction(username, password);
- LoginResponse loginResponse = new LoginResponse();
- sessionData.setLoginResponse(loginResponse);
- } catch (NotAuthorizedException e) {
- FacesContext context = FacesContext.getCurrentInstance();
- String value = context.getApplication().evaluateExpressionGet(context, "#{msg['"+e.getMessage()+"']}", String.class);
- FacesMessage message = new FacesMessage(value);
- FacesContext.getCurrentInstance().addMessage(null, message);
- return "login.xhtml";
- }
- return "views/index.xhtml";
- }
- public String registerAction() {
- return "register.xhtml";
- }
- public SessionData getSessionData() {
- return sessionData;
- }
- public void setSessionData(SessionData sessionData) {
- this.sessionData = sessionData;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:a4j="http://richfaces.org/a4j"
- xmlns:rich="http://richfaces.org/rich">
- <h:head>
- <title><h:outputText value="#{msg['login.title']}" /></title>
- <link rel="stylesheet" type="text/css"bhref="#{request.contextPath}/style/style2.css" />
- </h:head>
- <h:body>
- <div id="container">
- <h:form class="login">
- <fieldset>
- <LEGEND>Login</LEGEND>
- <p>
- <h:messages />
- </p>
- <p>
- <h:outputLabel class="field" for="username" value="#{msg['login.username']}" />
- <h:inputText class="textboxright" id="username" value="#{login.username}" />
- </p>
- <p>
- <h:outputLabel class="field" for="password" value="#{msg['login.password']}" />
- <h:inputSecret class="textboxright" id="password" value="#{login.password}" />
- </p>
- <p>
- <h:commandButton class="login" value="#{msg['login.loginAction']}" action="#{login.loginAction}" />
- <h:commandLink class="left" value="#{msg['login.registerAction']}" action="#{login.registerAction}" />
- </p>
- </fieldset>
- </h:form>
- </div>
- </h:body>
- </html>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="norducparts-frontend" version="2.5">
- <display-name>NordicpartsFrontend</display-name>
- <servlet>
- <servlet-name>Faces Servlet</servlet-name>
- <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>*.jsf</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>*.xhtml</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>/faces/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>/views/*</url-pattern>
- </servlet-mapping>
- <filter>
- <filter-name>LoginFilter</filter-name>
- <filter-class>ro.nordicparts.odin.frontend.filters.AuthenticationFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>LoginFilter</filter-name>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>/views/*</url-pattern>
- </filter-mapping>
- <context-param>
- <param-name>org.richfaces.skin</param-name>
- <param-value>DEFAULT</param-value>
- </context-param>
- <context-param>
- <param-name>org.richfaces.fileUpload.maxRequestSize</param-name>
- <param-value>100000</param-value>
- </context-param>
- <context-param>
- <param-name>org.richfaces.fileUpload.createTempFiles</param-name>
- <param-value>false</param-value>
- </context-param>
- <context-param>
- <param-name>javax.faces.PROJECT_STAGE</param-name>
- <param-value>Development</param-value>
- </context-param>
- <context-param>
- <param-name>org.richfaces.resourceOptimization.enabled</param-name>
- <param-value>true</param-value>
- </context-param>
- <context-param>
- <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
- <param-value>server</param-value>
- </context-param>
- <context-param>
- <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
- <param-value>true</param-value>
- </context-param>
- <context-param>
- <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
- <param-value>true</param-value>
- </context-param>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:ro/nordicparts/odin/frontend/application-config.xml</param-value>
- </context-param>
- <context-param>
- <param-name>log4jConfigLocation</param-name>
- <param-value>classpath:ro/nordicparts/odin/config/log4j.xml</param-value>
- </context-param>
- <welcome-file-list>
- <welcome-file>views/index.xhtml</welcome-file>
- </welcome-file-list>
- <error-page>
- <exception-type>javax.faces.application.ViewExpiredException</exception-type>
- <location>/error.xhtml</location>
- </error-page>
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
- </listener>
- </web-app>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>odin</artifactId>
- <groupId>ro.nordicparts</groupId>
- <version>1.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>ro.nordicparts</groupId>
- <artifactId>odin.frontend</artifactId>
- <packaging>war</packaging>
- <version>1.1</version>
- <name>odin.frontend</name>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <richfaces.version>4.3.5.FINAL</richfaces.version>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.version>4.0.0.RELEASE</spring.version>
- <hibernate.version>4.3.0.Final</hibernate.version>
- <hibernate.tools.version>3.2.0.beta8</hibernate.tools.version>
- <hibernate.generic.dao>1.2.0</hibernate.generic.dao>
- <slf4j.version>1.6.4</slf4j.version>
- <junit.version>4.7</junit.version>
- <log4j.version>1.2.14</log4j.version>
- <commons-dbcp.version>1.4</commons-dbcp.version>
- <jersey.version>1.1.5</jersey.version>
- <servlet-api-version>2.5</servlet-api-version>
- <modules.version>1.0-SNAPSHOT</modules.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.richfaces</groupId>
- <artifactId>richfaces-bom</artifactId>
- <version>${richfaces.version}</version>
- <scope>import</scope>
- <type>pom</type>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odin.model</artifactId>
- <version>${modules.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odin.business</artifactId>
- <version>${modules.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odin.persistence</artifactId>
- <version>${modules.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odin.config</artifactId>
- <version>${modules.version}</version>
- </dependency>
- <dependency>
- <groupId>org.richfaces.core</groupId>
- <artifactId>richfaces-core-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>org.richfaces.ui</groupId>
- <artifactId>richfaces-components-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.richfaces.ui</groupId>
- <artifactId>richfaces-components-ui</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.myfaces.core</groupId>
- <artifactId>myfaces-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.myfaces.core</groupId>
- <artifactId>myfaces-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet.jsp.jstl</groupId>
- <artifactId>jstl-api</artifactId>
- <exclusions>
- <exclusion>
- <artifactId>servlet-api</artifactId>
- <groupId>javax.servlet</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>net.sourceforge.cssparser</groupId>
- <artifactId>cssparser</artifactId>
- <version>0.9.7</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>14.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.w3c.css</groupId>
- <artifactId>sac</artifactId>
- <version>1.3</version>
- </dependency>
- <dependency>
- <groupId>antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>2.7.6rc1</version>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- <version>1.5.3</version>
- </dependency>
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm-attrs</artifactId>
- <version>1.5.3</version>
- </dependency>
- <dependency>
- <groupId>c3p0</groupId>
- <artifactId>c3p0</artifactId>
- <version>0.9.0</version>
- </dependency>
- <dependency>
- <groupId>cglib</groupId>
- <artifactId>cglib</artifactId>
- <version>3.0</version>
- </dependency>
- <dependency>
- <groupId>concurrent</groupId>
- <artifactId>concurrent</artifactId>
- <version>1.3.2</version>
- </dependency>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- </dependency>
- <dependency>
- <groupId>javax.security</groupId>
- <artifactId>jaas</artifactId>
- <version>1.0.01</version>
- </dependency>
- <dependency>
- <groupId>javax.security</groupId>
- <artifactId>jacc</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>jaxen</groupId>
- <artifactId>jaxen</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>javax.transaction</groupId>
- <artifactId>jta</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>oscache</groupId>
- <artifactId>oscache</artifactId>
- <version>2.2</version>
- </dependency>
- <dependency>
- <groupId>proxool</groupId>
- <artifactId>proxool</artifactId>
- <version>0.8.3</version>
- </dependency>
- <dependency>
- <groupId>org.w3c.css</groupId>
- <artifactId>sac</artifactId>
- <version>1.3</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- <version>1.7.5</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>swarmcache</groupId>
- <artifactId>swarmcache</artifactId>
- <version>1.0RC2</version>
- </dependency>
- <dependency>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
- <version>2.7.0</version>
- </dependency>
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xmlParserAPIs</artifactId>
- <version>2.6.2</version>
- </dependency>
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xerces</artifactId>
- <version>2.4.0</version>
- </dependency>
- <dependency>
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- <version>2.0.2</version>
- </dependency>
- </dependencies>
- <build>
- <finalName>NordicpartsFrontend</finalName>
- <plugins>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
- </manifest>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement