Migrate authentication to beans.
This commit is contained in:
@@ -160,3 +160,4 @@ security.oauth2.google.url=https://accounts.google.com/o/oauth2/v2/auth?redirect
|
||||
|
||||
# Coma separated list of domains and emails ban
|
||||
#accounts.exclusion.domain=
|
||||
|
||||
|
@@ -1,7 +0,0 @@
|
||||
# Debug level
|
||||
log4j.rootLogger=INFO,stdout
|
||||
|
||||
# Stdout logger
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
|
19
wise-webapp/src/main/webapp/WEB-INF/classes/log4j-stdout.xml
Normal file
19
wise-webapp/src/main/webapp/WEB-INF/classes/log4j-stdout.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="DEBUG">
|
||||
<Appenders>
|
||||
<Console name="LogToConsole" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
</Console>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="com.wisemapping" level="debug">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Logger>
|
||||
<Logger name="org.springframework" level="trace">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Logger>
|
||||
<Root level="trace">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
@@ -1,24 +0,0 @@
|
||||
# Log levels
|
||||
log4j.rootLogger=INFO, stdout, R
|
||||
log4j.logger.com.wisemapping=DEBUG,R
|
||||
log4j.logger.org.springframework=DEBUG,R
|
||||
log4j.logger.org.hibernate=INFO,R
|
||||
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE,R
|
||||
log4j.logger.org.hibernate.SQL=DEBUG,R
|
||||
|
||||
# Stdout logger
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
|
||||
|
||||
|
||||
# File Writer Logger
|
||||
log4j.appender.R=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.R.File=wisemapping.log
|
||||
|
||||
log4j.appender.R.MaxFileSize=100KB
|
||||
# Keep one backup file
|
||||
log4j.appender.R.MaxBackupIndex=1
|
||||
|
||||
log4j.appender.R.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.R.layout.ConversionPattern=%d %p %c - %m%n
|
24
wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml
Normal file
24
wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="DEBUG">
|
||||
<Appenders>
|
||||
<Console name="LogToConsole" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
</Console>
|
||||
<File name="LogToFile" fileName="wisemapping.log">
|
||||
<PatternLayout>
|
||||
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
|
||||
</PatternLayout>
|
||||
</File>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="com.wisemapping" level="debug">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Logger>
|
||||
<Logger name="org.springframework" level="trace">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Logger>
|
||||
<Root level="trace">
|
||||
<AppenderRef ref="LogToConsole"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
@@ -2,16 +2,6 @@
|
||||
|
||||
<tiles-definitions>
|
||||
|
||||
<definition name="mindmapEmbedded" template="/jsp/mindmapViewonly.jsp"/>
|
||||
<definition name="mindmapEditor" template="/jsp/mindmapEditor.jsp"/>
|
||||
<definition name="mindmapPrint" template="/jsp/mindmapViewonly.jsp"/>
|
||||
|
||||
<definition name="login" template="/jsp/reactInclude.jsp"/>
|
||||
<definition name="registration" template="/jsp/reactInclude.jsp"/>
|
||||
<definition name="registration-google" template="/jsp/reactInclude.jsp"/>
|
||||
<definition name="forgot-password" template="/jsp/reactInclude.jsp"/>
|
||||
<definition name="mindmapList" template="/jsp/reactInclude.jsp"/>
|
||||
|
||||
<!-- Template Declaration -->
|
||||
<definition name="errorTemplate" template="/jsp/errorTemplate.jsp">
|
||||
<put-attribute name="title" value="" type="string"/>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<%@ page import="com.wisemapping.security.Utils" %>
|
||||
<%@ page import="com.wisemapping.model.User" %>
|
||||
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
|
||||
<%@ include file="/jsp/init.jsp" %>
|
||||
<%@ include file="init.jsp" %>
|
||||
|
||||
<%--@elvariable id="mindmap" type="com.wisemapping.model.Mindmap"--%>
|
||||
<%--@elvariable id="editorTryMode" type="java.lang.Boolean"--%>
|
||||
@@ -16,7 +16,7 @@
|
||||
<base href="${requestScope['site.baseurl']}/static/webapp/">
|
||||
|
||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;600&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'" crossorigin>
|
||||
<%@ include file="/jsp/pageHeaders.jsf" %>
|
||||
<%@ include file="pageHeaders.jsf" %>
|
||||
|
||||
<title>Loading ... | WiseMapping</title>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<%@page pageEncoding="UTF-8" %>
|
||||
<%@include file="/jsp/init.jsp" %>
|
||||
<%@include file="init.jsp" %>
|
||||
|
||||
<%--@elvariable id="mindmap" type="com.wisemapping.model.Mindmap"--%>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<link rel="preload" href="../../css/viewonly.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
|
||||
<title>${mindmap.title} | <spring:message code="SITE.TITLE"/></title>
|
||||
<%@ include file="/jsp/pageHeaders.jsf" %>
|
||||
<%@ include file="pageHeaders.jsf" %>
|
||||
|
||||
<script type="text/javascript">
|
||||
var mapId = '${mindmap.id}';
|
@@ -9,7 +9,7 @@
|
||||
<base href="${requestScope['site.baseurl']}/static/webapp/">
|
||||
|
||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;600&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'" crossorigin>
|
||||
<%@ include file="/jsp/pageHeaders.jsf" %>
|
||||
<%@ include file="pageHeaders.jsf" %>
|
||||
|
||||
<title>WiseMapping</title>
|
||||
|
52
wise-webapp/src/main/webapp/WEB-INF/views/securityError.jsp
Normal file
52
wise-webapp/src/main/webapp/WEB-INF/views/securityError.jsp
Normal file
@@ -0,0 +1,52 @@
|
||||
<%@page pageEncoding="UTF-8" %>
|
||||
<%@include file="init.jsp" %>
|
||||
|
||||
<!DOCTYPE HTML>
|
||||
|
||||
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
|
||||
<tiles:importAttribute name="title" scope="request"/>
|
||||
<tiles:importAttribute name="details" scope="request"/>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<base href="${requestScope['site.baseurl']}/">
|
||||
<title>
|
||||
<spring:message code="SITE.TITLE"/>-
|
||||
<c:choose>
|
||||
<c:when test="${requestScope.viewTitle!=null}">
|
||||
${requestScope.viewTitle}
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<spring:message code="${requestScope.title}"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<base href="${requestScope['site.baseurl']}/static/mindplot/">
|
||||
<title><spring:message code="SITE.TITLE"/> - <c:out value="${mindmap.title}"/></title>
|
||||
<link rel="stylesheet" href="../../css/error.css"/>
|
||||
<%@ include file="/jsp/pageHeaders.jsf" %>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="errorContainer">
|
||||
<div class='col'>
|
||||
<h1>Oops !</h1>
|
||||
<h2>
|
||||
<spring:message code="${requestScope.title}"/>
|
||||
</h2>
|
||||
<p>
|
||||
<spring:message code="${requestScope.details}"/>
|
||||
</p>
|
||||
</div>
|
||||
<div class='column'>
|
||||
<a href="https://www.wisemapping.com">
|
||||
<img src="/images/logo-icon.svg" alt="Wisemapping icon" id="icon" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom-logo"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
<web-app version="5.0"
|
||||
xmlns="https://jakarta.ee/xml/ns/jakartaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
|
||||
version="3.1">
|
||||
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd">
|
||||
|
||||
<filter>
|
||||
<filter>
|
||||
<filter-name>charsetFilter</filter-name>
|
||||
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
|
||||
<init-param>
|
||||
@@ -17,7 +17,7 @@
|
||||
<distributable/>
|
||||
|
||||
<context-param>
|
||||
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
||||
<param-name>jakarta.servlet.jsp.jstl.fmt.localizationContext</param-name>
|
||||
<param-value>messages</param-value>
|
||||
</context-param>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/WEB-INF/wisemapping-dao.xml
|
||||
/WEB-INF/wisemapping-service.xml
|
||||
/WEB-INF/wisemapping-model.xml
|
||||
/WEB-INF/wisemapping-security.xml
|
||||
/WEB-INF/wisemapping-servlet.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
|
@@ -21,9 +21,9 @@
|
||||
<property name="hibernateProperties">
|
||||
<props>
|
||||
<prop key="hibernate.dialect">${database.hibernate.dialect}</prop>
|
||||
<prop key="hibernate.cache.use_second_level_cache">true</prop>
|
||||
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
|
||||
<prop key="hibernate.default_batch_fetch_size">200</prop>
|
||||
<!-- <prop key="hibernate.cache.use_second_level_cache">true</prop>-->
|
||||
<!-- <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>-->
|
||||
<!-- <prop key="hibernate.default_batch_fetch_size">200</prop>-->
|
||||
<prop key="hibernate.nestedTransactionAllowed">true</prop>
|
||||
<prop key="hibernate.auto_quote_keyword">true</prop>
|
||||
</props>
|
||||
|
@@ -1,90 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:sec="http://www.springframework.org/schema/security"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/security
|
||||
http://www.springframework.org/schema/security/spring-security.xsd">
|
||||
|
||||
<bean id="custom-firewall" class="org.springframework.security.web.firewall.StrictHttpFirewall">
|
||||
<property name="allowSemicolon" value="true"/>
|
||||
</bean>
|
||||
|
||||
<sec:http-firewall ref="custom-firewall"/>
|
||||
<sec:http pattern="/static/webapp/**" security="none"/>
|
||||
<sec:http pattern="/static/mindplot/**" security="none"/>
|
||||
<sec:http pattern="/css/**" security="none"/>
|
||||
<sec:http pattern="/js/**" security="none"/>
|
||||
<sec:http pattern="/images/**" security="none"/>
|
||||
|
||||
<sec:http pattern="/c/maps/*/embed" security="none"/>
|
||||
<sec:http pattern="/c/maps/*/try" security="none"/>
|
||||
<sec:http pattern="/c/maps/*/public" security="none"/>
|
||||
<sec:http pattern="/c/restful/maps/*/document/xml-pub" security="none"/>
|
||||
|
||||
<sec:http pattern="/c/activation" security="none"/>
|
||||
|
||||
<!-- Admin related services that required admin role-->
|
||||
<sec:http use-expressions="true" create-session="stateless" pattern="/service/**">
|
||||
<sec:csrf disabled="true"/>
|
||||
<sec:intercept-url pattern="/service/users" method="OPTIONS" access="permitAll"/>
|
||||
<sec:intercept-url pattern="/service/users/resetPassword" method="OPTIONS" access="permitAll"/>
|
||||
|
||||
<sec:intercept-url pattern="/service/users/" method="POST" access="permitAll"/>
|
||||
<sec:intercept-url pattern="/service/users/resetPassword" method="PUT" access="permitAll"/>
|
||||
|
||||
<sec:intercept-url pattern="/service/oauth2/googlecallback" method="POST" access="permitAll"/>
|
||||
<sec:intercept-url pattern="/service/oauth2/confirmaccountsync" method="PUT" access="permitAll"/>
|
||||
|
||||
<sec:intercept-url pattern="/service/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
|
||||
<sec:intercept-url pattern="/service/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
|
||||
<sec:intercept-url pattern="/service/**" access="isAuthenticated() and hasRole('ROLE_USER')"/>
|
||||
|
||||
<sec:http-basic/>
|
||||
</sec:http>
|
||||
|
||||
<sec:http use-expressions="true" pattern="/c/**/*">
|
||||
<sec:csrf request-matcher-ref="requestMatcher"/>
|
||||
<sec:intercept-url pattern="/c/login" access="permitAll"/>
|
||||
<sec:intercept-url pattern="/c/registration" access="hasRole('ANONYMOUS')"/>
|
||||
<sec:intercept-url pattern="/c/registration-success" access="hasRole('ANONYMOUS')"/>
|
||||
<sec:intercept-url pattern="/c/registration-google" access="permitAll"/>
|
||||
<sec:intercept-url pattern="/c/forgot-password" access="hasRole('ANONYMOUS')"/>
|
||||
<sec:intercept-url pattern="/c/forgot-password-success" access="hasRole('ANONYMOUS')"/>
|
||||
|
||||
<sec:intercept-url pattern="/c/**/*" access="isAuthenticated() and hasRole('ROLE_USER')"/>
|
||||
<sec:access-denied-handler error-page="/c/login"/>
|
||||
<sec:form-login login-page="/c/login"
|
||||
authentication-success-handler-ref="authenticationSuccessHandler"
|
||||
always-use-default-target="false"
|
||||
authentication-failure-url="/c/login?login_error=2"
|
||||
login-processing-url="/c/perform-login"/>
|
||||
|
||||
<!-- Expire in 28 days -->
|
||||
<sec:remember-me token-validity-seconds="2419200"
|
||||
remember-me-parameter="remember-me"
|
||||
authentication-success-handler-ref="authenticationSuccessHandler"/>
|
||||
<sec:logout logout-url="/c/logout" invalidate-session="true" logout-success-url="/c/login"/>
|
||||
</sec:http>
|
||||
|
||||
<!-- Extends CSFR match to get methods to have consistency in all errors. Otherwise, get requests are forward in some cases -->
|
||||
<bean id="requestMatcher"
|
||||
class="com.wisemapping.security.CSFRRequestMatcher">
|
||||
<property name="prefix" value="/c/restful/"/>
|
||||
</bean>
|
||||
|
||||
<import resource="wisemapping-security-${security.type}.xml"/>
|
||||
|
||||
<bean id="userDetailsService" class="com.wisemapping.security.UserDetailsService">
|
||||
<property name="userService" ref="userService"/>
|
||||
<property name="adminUser" value="${admin.user}"/>
|
||||
</bean>
|
||||
|
||||
<bean id="authenticationSuccessHandler" class="com.wisemapping.security.AuthenticationSuccessHandler">
|
||||
<property name="defaultTargetUrl" value="/c/maps/"/>
|
||||
<property name="alwaysUseDefaultTargetUrl" value="false"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -120,4 +120,5 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<import resource="wisemapping-security-${security.type}.xml"/>
|
||||
</beans>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
http://www.springframework.org/schema/mvc
|
||||
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
|
||||
|
||||
<context:component-scan base-package="com.wisemapping.webmvc"/>
|
||||
<context:component-scan base-package="com.wisemapping"/>
|
||||
<context:annotation-config/>
|
||||
<mvc:annotation-driven/>
|
||||
<context:property-placeholder location="/WEB-INF/app.properties" ignore-unresolvable="true"/>
|
||||
@@ -25,12 +25,12 @@
|
||||
<bean id="simpleMappingExceptionResolver"
|
||||
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
|
||||
<property name="defaultStatusCode" value="500"/>
|
||||
<property name="defaultErrorView" value="unexpectedError"/>
|
||||
<property name="defaultErrorView" value="errorTemplate"/>
|
||||
<property name="warnLogCategory" value="com.wisemapping.mvc.Exceptions"/>
|
||||
|
||||
<property name="exceptionMappings">
|
||||
<props>
|
||||
<!-- Security access exceptions must not handled as unexpected errors -->
|
||||
<!-- Security access exceptions must not handle as unexpected errors -->
|
||||
<prop key="com.wisemapping.exceptions.MapNonPublicException">securityError</prop>
|
||||
<prop key="com.wisemapping.exceptions.AccessDeniedSecurityException">securityError</prop>
|
||||
</props>
|
||||
@@ -43,16 +43,10 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
|
||||
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
|
||||
</bean>
|
||||
|
||||
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
|
||||
<property name="definitions">
|
||||
<list>
|
||||
<value>/WEB-INF/defs/definitions.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<bean id="viewResolver"
|
||||
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
||||
<property name="prefix" value="/WEB-INF/views/"/>
|
||||
<property name="suffix" value=".jsp"/>
|
||||
</bean>
|
||||
|
||||
<bean id="localeResolver"
|
||||
|
Reference in New Issue
Block a user