|
|
|
@ -36,6 +36,11 @@ import org.wso2.carbon.webapp.authenticator.framework.authenticator.WebappAuthen
|
|
|
|
|
import org.wso2.carbon.webapp.authenticator.framework.authorizer.WebappTenantAuthorizer;
|
|
|
|
|
|
|
|
|
|
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.TreeMap;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
@ -49,6 +54,31 @@ public class WebappAuthenticationValve extends CarbonTomcatValve {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
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))
|
|
|
|
|
&& (StringUtils.isEmpty(request.getHeader(AUTHORIZE_PERMISSION)))) {
|
|
|
|
|