Add IoT-Node-IP response header

revert-70ac1926
Charitha Goonetilleke 4 years ago
parent e20b0459a2
commit 48e2cb69a0

@ -36,6 +36,11 @@ import org.wso2.carbon.webapp.authenticator.framework.authenticator.WebappAuthen
import org.wso2.carbon.webapp.authenticator.framework.authorizer.WebappTenantAuthorizer; import org.wso2.carbon.webapp.authenticator.framework.authorizer.WebappTenantAuthorizer;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -49,6 +54,31 @@ public class WebappAuthenticationValve extends CarbonTomcatValve {
@Override @Override
public void invoke(Request request, Response response, CompositeValve compositeValve) { public void invoke(Request request, Response response, CompositeValve compositeValve) {
if (response != null) {
if (inetAddress == null) {
try {
Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces();
while (ifaces.hasMoreElements()) {
NetworkInterface iface = ifaces.nextElement();
if (!iface.isLoopback() && iface.isUp()) {
Enumeration<InetAddress> addresses = iface.getInetAddresses();
while (addresses.hasMoreElements()) {
inetAddress = addresses.nextElement();
break;
}
}
break;
}
} catch (SocketException e) {
if (log.isDebugEnabled()) {
log.debug("Unable to get IP address of the node.", e);
}
}
}
if (inetAddress != null) {
response.setHeader("IoT-Node-IP", inetAddress.getHostAddress());
}
}
if ((this.isContextSkipped(request) || this.skipAuthentication(request)) if ((this.isContextSkipped(request) || this.skipAuthentication(request))
&& (StringUtils.isEmpty(request.getHeader(AUTHORIZE_PERMISSION)))) { && (StringUtils.isEmpty(request.getHeader(AUTHORIZE_PERMISSION)))) {

Loading…
Cancel
Save