systeminitializing.java
来自「web版的SVN客户端」· Java 代码 · 共 88 行
JAVA
88 行
package org.polarion.svnwebclient.web;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.polarion.svnwebclient.SVNWebClientException;
import org.polarion.svnwebclient.authorization.UserCredentials;
import org.polarion.svnwebclient.authorization.impl.CredentialsManager;
import org.polarion.svnwebclient.configuration.ConfigurationProvider;
import org.polarion.svnwebclient.data.DataProviderException;
import org.polarion.svnwebclient.data.DataProviderFactory;
import org.polarion.svnwebclient.data.IDataProvider;
import org.polarion.svnwebclient.data.javasvn.DataProvider;
import org.polarion.svnwebclient.web.resource.Links;
import org.polarion.svnwebclient.web.support.AbstractRequestHandler;
import org.polarion.svnwebclient.web.support.State;
public class SystemInitializing {
public static final String ORIGINAL_URL = "originalUrl";
public static final String ID = "id";
protected State state;
public IDataProvider init(HttpServletRequest request, HttpServletResponse response, AbstractRequestHandler requestHandler) throws SVNWebClientException {
this.state = new State(request, response);
CredentialsManager credentialsManager = new CredentialsManager();
UserCredentials userCredentials = null;
userCredentials = credentialsManager.getUserCredentials(request, response);
if (userCredentials == null) {
return null;
}
String id = (String) request.getSession().getAttribute(SystemInitializing.ID);
String url = this.getRepositoryLocation(requestHandler);
if (id == null) {
id = DataProvider.getID(url,userCredentials.getUsername(), userCredentials.getPassword());
if (ConfigurationProvider.getInstance().isMultiRepositoryMode()){
try {
DataProvider.startup(userCredentials.getUsername(), userCredentials.getPassword(), id, url);
} catch (DataProviderException e) {
Logger.getLogger(this.getClass()).error(e, e);
}
}
request.getSession().setAttribute(SystemInitializing.ID, id);
this.checkRestrictedAccess();
}
IDataProvider dataProvider = DataProviderFactory.getDataProvider();
dataProvider.setRelativeLocation(id, requestHandler.getRepositoryName());
dataProvider.connect(userCredentials, id, url);
return dataProvider;
}
protected void checkRestrictedAccess() {
String originalUrl = (String) this.state.getRequest().getSession().getAttribute(SystemInitializing.ORIGINAL_URL);
if (originalUrl != null) {
String currentUri = this.state.getRequest().getServletPath().substring(1);
if ( ! originalUrl.equals(currentUri)) {
AttributeStorage.getInstance().cleanSession(this.state.getRequest().getSession());
}
}
}
public void redirectToRestrictPage() {
String query = this.state.getRequest().getQueryString();
String uri = this.state.getRequest().getServletPath();
this.state.getRequest().getSession().setAttribute(SystemInitializing.ORIGINAL_URL, uri.substring(1));
try {
this.state.getResponse().sendRedirect(Links.RESTRICTED_ACCESS + "?" + query);
} catch (IOException e) {
}
}
protected String getRepositoryLocation(AbstractRequestHandler requestHandler){
String res = "";
if (!ConfigurationProvider.getInstance().isMultiRepositoryMode()) {
res = ConfigurationProvider.getInstance().getRepositoryUrl();
} else {
res += ConfigurationProvider.getInstance().getParentRepositoryDirectory() +
requestHandler.getRepositoryName();
}
return res;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?