Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在maven中绕过java登录_Java_Maven - Fatal编程技术网

在maven中绕过java登录

在maven中绕过java登录,java,maven,Java,Maven,当前正在使用开源项目() 当我构建应用程序时,它如下所示: 问题是,API站在他们这边(publicstaticfinalstringAPI\uURL=”https://api.somesite.com/user“;) 他们的API下降了。因此,我无法在他们的网站上注册,以通过登录过程。 有没有办法绕过登录? 在下面提供LoginController类代码 public class LoginController extends Controller<LoginView> { pu

当前正在使用开源项目() 当我构建应用程序时,它如下所示: 问题是,API站在他们这边(
publicstaticfinalstringAPI\uURL=”https://api.somesite.com/user“;
) 他们的API下降了。因此,我无法在他们的网站上注册,以通过登录过程。 有没有办法绕过登录? 在下面提供LoginController类代码

public class LoginController extends Controller<LoginView> {

public static final String API_URL = "";

private final Logger logger = Logger.getLogger(LoginController.class);
private LoginView view;

public LoginController() {
    ControllerManager.add(LoginController.class, this);
}


public void show() {
    try {
        if (Session.get().getApiToken() != null) {
            logger.info("Existing API token found - trying to retrieve account info...");
            if (loadAccount(Session.get().getApiToken(), true, Session.get().getEmail().getValue())) {
                logger.info("Logged in with pre-existing key.");
                return;
            }
        }
    } catch (Exception e) {
        logger.error("Failed to authenticate.", e);
    }

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    int centerX = (toolkit.getScreenSize().width / 2) - (getComponent().getWidth() / 2);
    int centerY = (toolkit.getScreenSize().height / 2) - (getComponent().getHeight() / 2);
    getComponent().setLocation(centerX, centerY);
    getComponent().setIconImage(Application.ICON_IMAGE);
    getComponent().setVisible(true);
}

public void login(String email, String password, boolean rememberMe) {
    try {
        SwingWorker worker = new SwingWorker() {
            @Override
            protected Object doInBackground() throws Exception {
                HttpResponse response = Executor.newInstance(HttpUtil.getClient()).execute(Request.Post(API_URL + "/token")
                        .bodyString(JacksonUtil.serialize(new CreateTokenRequest(email, password)), ContentType.APPLICATION_JSON)).returnResponse();
                if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                    UserToken tokenResponse = JacksonUtil.deserialize(
                            EntityUtils.toString(response.getEntity()),
                            UserToken.class);
                    if (loadAccount(tokenResponse.getUuid(), rememberMe, email)) {
                        logger.info("Logged in.");
                        return null;
                    }
                }
                logger.error("Invalid login, response: [" + response.toString() + "]");
                getComponent().getStatusLbl().setText("Status: Invalid login");
                return null;
            }
        };
        worker.execute();
    } catch (Exception e) {
        logger.error("Oops.", e);
        getComponent().getStatusLbl().setText("Status: Error logging in");
    }
}

private boolean loadAccount(String uuid, boolean rememberMe, String email) throws IOException {
    HttpResponse getAccountResponse = Executor.newInstance(HttpUtil.getClient()).execute(Request.Get(API_URL)
            .addHeader("Authorization", "Bearer " + uuid)).returnResponse();
    if (getAccountResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        logger.info("Processed login [" + getAccountResponse.toString() + "]");

        UserAccount account = JacksonUtil.deserialize(
                EntityUtils.toString(getAccountResponse.getEntity()),
                UserAccount.class);
        if (account != null && account.getStatus() == UserAccount.Status.ACTIVE &&
                account.getType() != null) {
            getComponent().getStatusLbl().setText("Status: Logged in");
            getComponent().dispose();

            Session.get().setUserAccount(account);

            Session.get().setApiToken(uuid);
            Property emailProperty = Session.get().getEmail();
            Property apiKeyProperty = Session.get().getApiKey();
            if (rememberMe) {
                if (emailProperty == null) {
                    emailProperty = new Property(Session.EMAIL_PROPERTY_KEY, email);
                    emailProperty.save();
                } else {
                    emailProperty.setValue(email);
                    emailProperty.save();
                }

                if (apiKeyProperty == null) {
                    apiKeyProperty = new Property(Session.API_KEY_PROPERTY_KEY, uuid);
                    apiKeyProperty.save();
                } else {
                    apiKeyProperty.setValue(uuid);
                    apiKeyProperty.save();
                }
            } else {
                if (emailProperty != null) {
                    emailProperty.remove();
                }

                if (apiKeyProperty != null) {
                    apiKeyProperty.remove();
                }
            }
            Session.get().onAuthenticated();
            ControllerManager.get(MainController.class).show();
            return true;
        } else {
            getComponent().getStatusLbl().setText("Status: Only BETA users can login");
            return false;
        }
    }
    return false;
}

@Override
public LoginView getComponent() {
    if (view == null) {
        view = new LoginView(this);
    }
    return view;
}
公共类LoginController扩展控制器{
公共静态最终字符串API_URL=“”;
私有最终记录器=Logger.getLogger(LoginController.class);
私人登录视图;
公共登录控制器(){
添加(LoginController.class,this);
}
公开展览({
试一试{
if(Session.get().getApiToken()!=null){
info(“找到现有API令牌-尝试检索帐户信息…”);
if(loadAccount(Session.get().getApiToken(),true,Session.get().getEmail().getValue())){
info(“使用预先存在的密钥登录”);
返回;
}
}
}捕获(例外e){
logger.error(“验证失败”,e);
}
Toolkit=Toolkit.getDefaultToolkit();
int centerX=(toolkit.getScreenSize().width/2)-(getComponent().getWidth()/2);
int centerY=(toolkit.getScreenSize().height/2)-(getComponent().getHeight()/2);
getComponent().setLocation(centerX、centerY);
getComponent().setIconImage(Application.ICON\u IMAGE);
getComponent().setVisible(true);
}
公共无效登录(字符串电子邮件、字符串密码、布尔记忆){
试一试{
SwingWorker worker=新SwingWorker(){
@凌驾
受保护对象doInBackground()引发异常{
HttpResponse response=Executor.newInstance(HttpUtil.getClient()).execute(Request.Post(API_URL+“/token”)
.bodyString(JacksonUtil.serialize(新的CreateTokenRequest(电子邮件、密码)),ContentType.APPLICATION_JSON)).returnResponse();
if(response.getStatusLine().getStatusCode()==HttpStatus.SC\u OK){
UserToken tokenResponse=JacksonUtil.deserialize(
EntityUtils.toString(response.getEntity()),
UserToken.class);
if(loadAccount(tokenResponse.getUuid(),记住,电子邮件)){
logger.info(“登录”);
返回null;
}
}
logger.error(“无效登录,响应:[“+response.toString()+”]”);
getComponent().getStatusLbl().setText(“状态:无效登录”);
返回null;
}
};
worker.execute();
}捕获(例外e){
logger.error(“Oops.”,e);
getComponent().getStatusLbl().setText(“状态:登录时出错”);
}
}
私有布尔loadAccount(字符串uuid、布尔记忆、字符串电子邮件)引发IOException{
HttpResponse getAccountResponse=Executor.newInstance(HttpUtil.getClient()).execute(Request.Get(API_URL)
.addHeader(“授权”、“承载人”+uuid)).returnResponse();
if(getAccountResponse.getStatusLine().getStatusCode()==HttpStatus.SC\u OK){
logger.info(“已处理的登录名[“+getAccountResponse.toString()+”]);
UserAccount=JacksonUtil.deserialize(
EntityUtils.toString(getAccountResponse.getEntity()),
UserAccount.class);
if(account!=null&&account.getStatus()==UserAccount.Status.ACTIVE&&
account.getType()!=null){
getComponent().getStatusLbl().setText(“状态:已登录”);
getComponent().dispose();
Session.get().setUserAccount(account);
Session.get().setApiToken(uuid);
属性emailProperty=Session.get().getEmail();
属性apiKeyProperty=Session.get().getApiKey();
如果(记住){
if(emailProperty==null){
emailProperty=新属性(Session.EMAIL\u Property\u KEY,EMAIL);
emailProperty.save();
}否则{
emailProperty.setValue(电子邮件);
emailProperty.save();
}
if(apiKeyProperty==null){
apiKeyProperty=新属性(Session.API\u KEY\u Property\u KEY,uuid);
apiKeyProperty.save();
}否则{
apiKeyProperty.setValue(uuid);
apiKeyProperty.save();
}
}否则{
if(emailProperty!=null){
emailProperty.remove();
}
if(apiKeyProperty!=null){
apiKeyProperty.remove();
}
}
Session.get().onAuthenticated();
get(MainController.class).show();
返回true;
}否则{
getComponent().getStatusLbl().setText(“状态:只有测试版用户才能登录”);
返回false;
}
}
返回false;
}
@凌驾
public LoginView getComponent(){
如果(视图==null){
视图=新登录视图(此);
}
返回视图;
}

看起来您的
login
loadAccount
方法正在使用调用
HttpUtil.getClient()
方法得到的
HttpResponse
。因此,您可以尝试模拟从
HttpUtil.getClient()
返回的客户端,以便它将返回假数据。尝试查看@D.B谢谢,这很有效!