net.kut3.http.InternalAPI Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of servlet-util Show documentation
Show all versions of servlet-util Show documentation
A bundle of servlet ultilies
The newest version!
/*
* Copyright 2019 Kut3Net.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.kut3.http;
import java.io.IOException;
import net.kut3.util.BytesUtil;
import net.kut3.util.StringUtil;
/**
*
*/
public class InternalAPI extends RestAPI {
public static final String SIGNATURE = "signature";
@Override
protected boolean logReq(APIContext apiCtx) throws IOException {
if (!super.logReq(apiCtx)) {
return false;
}
String callerCode = apiCtx.header(HttpHeader.X_CALLER);
if (StringUtil.isNullOrEmpty(callerCode)) {
apiCtx.badRequest(HttpHeader.X_CALLER + " nullOrEmpty");
return false;
}
apiCtx.log(HttpHeader.X_CALLER, callerCode);
Caller caller = CallerFactory.INSTANCE.get(callerCode);
if (null == caller) {
apiCtx.badRequest("Invalid " + HttpHeader.X_CALLER);
return false;
}
String signature = apiCtx.header(HttpHeader.X_SIGNATURE);
if (StringUtil.isNullOrEmpty(signature)) {
apiCtx.badRequest(HttpHeader.X_SIGNATURE + " nullOrEmpty");
return false;
}
try {
apiCtx.attr(SIGNATURE, BytesUtil.fromBase64String(signature));
} catch (IllegalArgumentException ex) {
apiCtx.badRequest("Invalid " + HttpHeader.X_SIGNATURE);
return false;
}
return true;
}
}