usuario uso sistema seguridad qué pide permite para otro momento iniciar ingresar guardadas guarda escribir equipo debe cual credenciales credencial contraseña conectarse autenticación administrador java servlets

java - uso - seguridad de windows 7 me pide usuario y contraseña



Obtener el dominio raíz de la solicitud (4)

En HttpServletRequest , puede obtener partes individuales del URI usando los métodos a continuación. También puede usarlos para reconstruir la URL pieza por pieza (para ayudar a la depuración u otras tareas), como esta:

// Example: http://myhost:8080/people?lastname=Fox&age=30 String uri = request.getScheme() + "://" + // "http" + ":// request.getServerName() + // "myhost" ":" + request.getServerPort() + // ":" + "8080" request.getRequestURI() + // "/people" (request.getQueryString() != null ? "?" + request.getQueryString() : ""); // "?" + "lastname=Fox&age=30"

Entonces request.getServerName() es lo más cercano que tenemos a tu necesidad.

El "dominio raíz":

Para el "dominio raíz", tendrá que trabajar a través de la String devuelta por getServerName() . Esto es necesario porque el Servlet no tendría forma de saber de antemano lo que usted llama "host" o lo que es solo un dominio como .com (podría ser una máquina llamada com en su red, y no solo un sufijo, quién ¿sabe?).

Para el patrón que proporcionó (un tercio + segundo nivel + com / neto), el siguiente debería obtener lo que necesita:

String domain = request.getServerName().replaceAll(".*//.(?=.*//.)", "");

Lo anterior dará las siguientes entradas / salidas:

www.test.com -> test.com test1.example.com -> example.com a.b.c.d.e.f.g.com -> g.com www.com -> www.com com -> com

Considere la siguiente URL como un ejemplo. http://www.test1.example.com

¿Hay algún método por el cual pueda obtener "example.com" como salida? Sé que hay un método servletrequest.getServerName() . Me da salida como test1.example.com

Cualquier ayuda apreciada.


Puedes hacer esto como una simple manipulación de cadenas:

String A = "http://www.test1.example.com"; String B = A.substring(A.lastIndexOf(''.'', A.lastIndexOf(''.'')-1) + 1);

No existe una forma estándar de obtener example.com de abcexample.com porque dicha transformación generalmente no es útil. Hay TLD que no permiten registros en el segundo nivel ; por ejemplo, todos los dominios .uk . Dado news.bbc.co.uk te gustaría terminar en bbc.co.uk , ¿verdad?


Tenemos una manera más confiable de hacer lo mismo. Hay google library "guava". Agregue la siguiente dependencia en su pom.

<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>19.0</version> </dependency>

Entonces intenta

InternetDomainName.from("subdomain.example.co.in").topPrivateDomain().toString()

Esto te dará "example.co.in"


import java.net.InetAddress; void Func() { InetAddress ia = InetAddress.getLocalHost(); System.out.println (ia.getHostName()); }

Espero que esto ayude.