/impl/conf/log4j.properties |
---|
26,8 → 26,8 |
#default category |
log4j.rootLogger = @log.level@, defaultLog, stdout |
log4j.rootLogger = warn, defaultLog, stdout |
### enable the following line if you want to track down connection ### |
### leakages when using DriverManagerConnectionProvider ### |
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider = trace |
#log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider = trace |
/impl/conf/hibernate.cfg.xml |
---|
3,7 → 3,9 |
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" |
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> |
<hibernate-configuration> |
<session-factory> |
<property name="connection.url">@database.connection.url@</property> |
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> |
<property name="connection.username">@database.username@</property> |
/impl/src/java/pt/estgp/estgweb/filters/filters/Session.java |
---|
1,28 → 1,24 |
package pt.estgp.estgweb.filters.filters; |
import pt.estgp.estgweb.domain.UserSession; |
import org.apache.log4j.Logger; |
import org.hibernate.ObjectNotFoundException; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.SessionObject; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.filters.chains.FlowFilter; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.services.users.UpdateUserSessionService; |
import pt.estgp.estgweb.filters.chains.FlowFilter; |
import pt.utl.ist.berserk.ServiceRequest; |
import pt.utl.ist.berserk.ServiceResponse; |
import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.FilterException; |
import pt.utl.ist.berserk.logic.filterManager.FilterParameters; |
import java.io.Serializable; |
import java.util.Date; |
import java.util.List; |
import java.util.Set; |
import org.hibernate.ObjectNotFoundException; |
import org.apache.log4j.Logger; |
import jomm.dao.impl.AbstractDao; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
63,21 → 59,26 |
logger.debug("object not found for requester:" + request.getRequester()); |
} |
System.out.println(Thread.currentThread().getId() + " : AQUI PASSOU AGORA: " + request.getRequester()); |
if(userSession == null) |
{ |
userSession = DomainObjectFactory.createUserSessionImpl(); |
System.out.println(Thread.currentThread().getId() +"NOVA: " + request.getRequester()); |
userSession.setCookie((String) request.getRequester()); |
} |
else |
{ |
System.out.println(Thread.currentThread().getId() +"APAGANDO OBJECTS: " + request.getRequester()); |
Set<SessionObject> sessionObjects = userSession.getObjects(); |
DaoFactory.getSessionObjectDaoImpl().delete(sessionObjects); |
userSession.setObjects(null); |
userSession.reset(); |
} |
System.out.println(Thread.currentThread().getId() +"SALVANDO DATA: " + request.getRequester()); |
userSession.setSaveDate(new Date()); |
userSession.setUpdateDate(new Date()); |
DaoFactory.getUserSessionDaoImpl().saveOrUpdate(userSession); |
System.out.println(Thread.currentThread().getId() +"UPDATE: " + request.getRequester()); |
putSessionInArgs(userSession,request); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/DirWebProxy.java |
---|
178,12 → 178,13 |
{ |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
String username = userSession != null ? userSession.getUsername() : "UNKNOWN"; |
logger.warn(username + ":" + request.getRemoteAddr() + " cant access this area server:" + server + " and path:" + path); |
logger.warn(username + ":" + request.getRemoteAddr() + " cant access this area server:" + server + " and path:" + path + " " + request.getRemoteUser() + " " + request.getRequestURL() + " spath " + request.getServletPath() + " queryString " + request.getQueryString() ); |
response.sendError(401); |
} |
catch (FileNotFoundException e) |
{ |
logger.warn("url not found for server:" + server + " and path:" + path); |
logger.warn("url not found for server:" + server + " and path:" + path + " " + "REMOTE USER" + request.getRemoteUser() + " " + request.getRequestURL()); |
response.sendError(404); |
} |
catch (Exception e) |
318,7 → 319,7 |
Element nextGoDeepElement = null; |
String d = pathFragments[i]; |
startPathAux = startPathAux + "/" + d; |
if(!client.changeWorkingDirectory(startPathAux)) |
if(!client.changeWorkingDirectory(startPathAux)) |
{ |
throw new NotAuthorizedException(); |
} |
/impl/src/java/pt/estgp/estgweb/web/UserSessionProxy.java |
---|
1,14 → 1,14 |
package pt.estgp.estgweb.web; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.Globals; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletRequest; |
import java.sql.BatchUpdateException; |
/** |
* @author Jorge Machado |
61,6 → 61,18 |
} |
catch (Throwable e) |
{ |
if(e instanceof BatchUpdateException) |
{ |
if(e.getCause() != null && e.getCause().toString() != null && e.getCause().toString().indexOf("Duplicate Entry")>=0) |
{ |
System.out.println(Thread.currentThread().getId() + " - Duplicada foi guardada noutra thread: " +RequestUtils.getRequester(request, response) ); |
IServiceManager sm = ServiceManager.getInstance(); |
Object[] args = new Object[]{RequestUtils.getRequester(request, response)}; |
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request, response),"LoadUserSession",args); |
request.setAttribute(Globals.USER_SESSION_KEY,userSession); |
return userSession; |
} |
} |
throw e; |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/filters/CookieFilter.java |
---|
40,7 → 40,10 |
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) |
throws IOException, ServletException |
{ |
HttpServletRequest hrequest = (HttpServletRequest) request; |
// System.out.println(request.getRemoteAddr() + " access and path:" + hrequest.getRemoteUser() + " " + hrequest.getRequestURL() + " " + ((HttpServletRequest) request).getRequestURI() + " spath " + hrequest.getServletPath() + " queryString " + hrequest.getQueryString() ); |
String relativePath = hrequest.getServletPath(); |
if (relativePath == null) |
relativePath = ""; |
/impl/src/hbm/pt/estgp/estgweb/domain/Announcement.hbm.xml |
---|
11,7 → 11,7 |
<generator class="native"/> |
</id> |
<discriminator column="discrimitator"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<timestamp source="db" name="updateDate" unsaved-value="null"/> |
<property name="saveDate" type="timestamp"/> |
<property name="startDate" type="timestamp"/> |
<property name="expireDate" type="timestamp"/> |
/impl/src/web/admin/announcements/submitAnnouncement.jsp |
---|
334,7 → 334,7 |
<html:text property="announcementView.internalUrlPath"/> |
<html:select property="announcementView.internalUrlServer"> |
<html:option value="estgp">ESTG</html:option> |
<html:option value="conteudos">CONTEUDOS</html:option> |
<html:option value="conteudos">CONTEUDOS</html:option> |
<html:option value="ionline">IONLINE</html:option> |
</html:select> |
</td> |
357,4 → 357,4 |
</td> |
</tr> |
</table> |
</html:form> |
</html:form> |
/impl/src/web/user/courseunits/courseunit.jsp |
---|
59,6 → 59,7 |
</html:select> |
</p> |
</baco:canManage> |
<baco:isAuthenticated> |
<h2><bean:message key="courseunit.programfilepath"/></h2> |
<p> |
<baco:canManage name="CourseUnitView"> |
73,6 → 74,7 |
</logic:present> |
</baco:canManage> |
<baco:cantManage name="CourseUnitView"> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<logic:equal value="true" name="CourseUnitView" property="validProgram"> |
86,6 → 88,7 |
</logic:notPresent> |
</p> |
</baco:isAuthenticated> |
<baco:canManage name="CourseUnitView"> |
<input type="button" onclick="set(form,'update');form.submit()" value="<bean:message key="confirm"/>"> |
/impl/src/web/user/courseunits/menu.jsp |
---|
70,21 → 70,27 |
<a href="<%=request.getContextPath()%>/"><bean:message key="courseunit.menu.put.question"/></a> |
</li>--> |
</baco:hasRole> |
<baco:isAuthenticated> |
<baco:isInCourseUnit courseUnitId="${CourseUnitView.id}"> |
<li> |
<a href="<%=request.getContextPath()%>${user}/startLoadCourseUnitWorks${fromAction}.do?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.assignements"/></a> |
</li> |
</baco:isInCourseUnit> |
</baco:isAuthenticated> |
<baco:isAuthenticated> |
<li> |
<html:link action="${user}/startCourseUnitBlog${fromAction}?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.menu.blog"/></html:link> |
</li> |
</baco:isAuthenticated> |
<li> |
<html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}"><bean:message key="courseunit.students"/></html:link> |
</li> |
<baco:isAuthenticated> |
<% |
UserSession userSession = UserSessionProxy.loadUserSessionFromRequest(request); |
CourseUnitContentsGrants contentsGrants = CourseUnitContentsGrants.parse(CourseUnitView.getContentsGrants()); |
111,6 → 117,7 |
<% |
} |
%> |
</baco:isAuthenticated> |
</ul> |
</div> |
</div> |