segue:
public static void main(String args[]) {
Properties props = System.getProperties();
props.list(System.out);
}
segue:
public static void main(String args[]) {
Properties props = System.getProperties();
props.list(System.out);
}
Aix, ai vc está fazendo uma aplicação desktop, ai sempre vai pegar as informações da maquina que está executando o jar, no caso dele é uma aplicação web, acessivel por um navegador, onde essas informações não vão estar disponiveis. Se ele fizer isso numa aplicação web, vai retornar a informações da maquina servidor.
verdade, to pensando se tem como injetar este comando pelo browser, via javaScript ( ainda não sei ) para executar na maquina cliente e me retonar o user.
Eu tinha visto sobre a chamada getRemoteUser().
(FacesContext.getCurrentInstance().getExternalContext().getRemoteUser())
Mas sempre retornava null, mas parece que é configuração do Tomcat (no meu caso).
Vou continuar lendo aqui pra ver se acho como configura ele direito pra esse remoteUser retornar o username.
concordo com o jaziel.rc, ter acesso a esses dados em sistema web é complicado…
Antes de eu continuar minha pesquisa aqui, alguém que entenda mais poderia me dizer se esse getRemoteUser é ± o que eu quero?
Pelo que li, parece que é isso msm.
Ele é da classe ExternalContext.
http://docs.oracle.com/javaee/5/api/javax/faces/context/ExternalContext.html#getRemoteUser()
=]
Vlw
[quote=BrZumba]Antes de eu continuar minha pesquisa aqui, alguém que entenda mais poderia me dizer se esse getRemoteUser é ± o que eu quero?
Pelo que li, parece que é isso msm.
Ele é da classe ExternalContext.
http://docs.oracle.com/javaee/5/api/javax/faces/context/ExternalContext.html#getRemoteUser()
=]
Vlw[/quote]
esta retornando nulo para você ? disculpa a insistencia mas agora fiquei curioso em saber pois diz : Retorna o nome de login do usuário que fez a requisição atual se houver, caso contrário, retornará nulo.
[quote=aix][quote=BrZumba]Antes de eu continuar minha pesquisa aqui, alguém que entenda mais poderia me dizer se esse getRemoteUser é ± o que eu quero?
Pelo que li, parece que é isso msm.
Ele é da classe ExternalContext.
http://docs.oracle.com/javaee/5/api/javax/faces/context/ExternalContext.html#getRemoteUser()
=]
Vlw[/quote]
esta retornando nulo para você ? disculpa a insistencia mas agora fiquei curioso em saber pois diz : Retorna o nome de login do usuário que fez a requisição atual se houver, caso contrário, retornará nulo.[/quote]
Sim. Eu uso essa chamada e retorna nulo.
String teste = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
e ‘teste’ é null.
Pelo que eu vi, parece que é configuração do servidor (no meu caso tomcat).
Estou fuçando a internet aqui pra ver de qualé…
No Windows tem a variável de ambiente %USERNAME%. Dei uma procurada rápida pela internet e parece que em máquinas windows você pode utilizar ActiveX ou VBScript (nao encontrei nada para javascript) para pegar as variáveis de ambientes do cliente e enviar num request para o server, mas nunca usei isso. Outra sugestão seria fazer um applet ou flash para buscar essas variáveis de ambiente.
Obs: No request dei uma olhada rápida em PHP (servidor rápido para testes que tenho aqui, rsrs) e não tem nenhuma identificação do usuário, segue o código de exemplo:
<?php foreach(getallheaders() as $key => $value){ echo "Key = $key => Value = $valueE para o chrome trouxe esses resultados:
[quote]Key = Host => Value = localhost
Key = Connection => Value = keep-alive
Key = Cache-Control => Value = max-age=0
Key = Pragma => Value = no-cache
Key = User-Agent => Value = Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Key = Accept => Value = text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Key = Accept-Encoding => Value = gzip,deflate,sdch
Key = Accept-Language => Value = pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
Key = Accept-Charset => Value = ISO-8859-1,utf-8;q=0.7,*;q=0.3
Key = Cookie => Value = SESS29af1facda0a866a687d5055f2fade2c=OwPNYEjGlqbfv3EpIghBXjGGBd5D9zyBa0jPPZ7pr_Q [/quote]
Para o ff:
[quote]Key = Host => Value = localhost
Key = User-Agent => Value = Mozilla/5.0 (Windows NT 6.2; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0
Key = Accept => Value = text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Key = Accept-Language => Value = en-us,en;q=0.5
Key = Accept-Encoding => Value = gzip, deflate
Key = Accept-Charset => Value = ISO-8859-1,utf-8;q=0.7,*;q=0.7
Key = Connection => Value = keep-alive [/quote]
Internet Explorer
[quote]Key = Accept => Value = text/html, application/xhtml+xml, /
Key = Accept-Language => Value = pt-BR
Key = User-Agent => Value = Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Key = Accept-Encoding => Value = gzip, deflate
Key = Host => Value = localhost
Key = Connection => Value = Keep-Alive [/quote]
Safari
[quote]Key = Host => Value = localhost
Key = User-Agent => Value = Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
Key = Accept => Value = text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Key = Accept-Language => Value = en-US
Key = Accept-Encoding => Value = gzip, deflate
Key = Connection => Value = keep-alive [/quote]
[quote=BrZumba][quote=aix][quote=BrZumba]Antes de eu continuar minha pesquisa aqui, alguém que entenda mais poderia me dizer se esse getRemoteUser é ± o que eu quero?
Pelo que li, parece que é isso msm.
Ele é da classe ExternalContext.
http://docs.oracle.com/javaee/5/api/javax/faces/context/ExternalContext.html#getRemoteUser()
=]
Vlw[/quote]
esta retornando nulo para você ? disculpa a insistencia mas agora fiquei curioso em saber pois diz : Retorna o nome de login do usuário que fez a requisição atual se houver, caso contrário, retornará nulo.[/quote]
Sim. Eu uso essa chamada e retorna nulo.
String teste = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
e ‘teste’ é null.
Pelo que eu vi, parece que é configuração do servidor (no meu caso tomcat).
Estou fuçando a internet aqui pra ver de qualé…[/quote]
não vai funcionar com FacesContext.getCurrentInstance().getExternalContext().getRemoteUser(); isot é caso o usuario ja esteja logado na app.
como diz: Retorna o nome de login do usuário que fez a requisição atual se houver retorna null porque não tem ninguem logado.
encontrei esse código ActiveX:
var wshShell = new ActiveXObject("WScript.Shell");
var usuario = wshShell.ExpandEnvironmentStrings("%USERNAME%");
alert(usuario);
Mas, conforme um comentário no próprio forum do imasters:
e
[quote]Você esta trabalhando em ambiente intranet? Se sim, outra forma seria você configurar o endereço como site confiável.
[/quote]
Mas acho que ActiveX só funciona no IE.
Opa, vlw.
Vou dar uma olhada depois.
Eu achei essa página: http://hardforum.com/showthread.php?t=1099819 onde o cara fala que o existe um “mod_auth_sspi” pro apache que faz exatamente o que quero.
Só preciso aprender direito a instalar esses módulos no apache e mexer nas configurações dele.
Manterei esse tópico informado hehehehehehee
Qlqer coisa que descobrirem aí, avisem!
=]
[quote=BrZumba]Opa, vlw.
Vou dar uma olhada depois.
Eu achei essa página: http://hardforum.com/showthread.php?t=1099819 onde o cara fala que o existe um “mod_auth_sspi” pro apache que faz exatamente o que quero.
Só preciso aprender direito a instalar esses módulos no apache e mexer nas configurações dele.
Manterei esse tópico informado hehehehehehee
Qlqer coisa que descobrirem aí, avisem!
=][/quote]
o propósito disto tudo é apenas usar o user do sistema como login para a aplicação ? acho que tem como fazer isto com JASS + SSO se for pensar o google faz isto, quando logamos em sistema da web com as credencias do gmail por exemplo.
Então galera, dando notícias…
Descobri que tem como fazer. Mas tem que botar o servidor Apache junto. Só o tomcat não consegue.
O problema foi botar o tomcat rodando junto com o apache… me tomou alguns dias hehehehehehe
Mas consegui (utilizando o mod_jk do apache).
Então atualmente eu tenho um servidor web Apache que manda as requisições pro tomcat. Até aí, blz.
Aí agora que eu tenho o apache, eu tenho que instalar o módulo mod_auth_sspi. E é aí que tá a caquinha. Não to conseguindo nem a pau. Vou abrir um outro tópico aqui com um título mais específico pra ver se alguém ajuda.
Qnd eu conseguir boto aqui tudo que foi preciso o/
[quote=BrZumba]Então galera, dando notícias…
Descobri que tem como fazer. Mas tem que botar o servidor Apache junto. Só o tomcat não consegue.
O problema foi botar o tomcat rodando junto com o apache… me tomou alguns dias hehehehehehe
Mas consegui (utilizando o mod_jk do apache).
Então atualmente eu tenho um servidor web Apache que manda as requisições pro tomcat. Até aí, blz.
Aí agora que eu tenho o apache, eu tenho que instalar o módulo mod_auth_sspi. E é aí que tá a caquinha. Não to conseguindo nem a pau. Vou abrir um outro tópico aqui com um título mais específico pra ver se alguém ajuda.
Qnd eu conseguir boto aqui tudo que foi preciso o/[/quote]
Criei o outro tópico na sessão de desenvolvimento web.
http://www.guj.com.br/java/262296-pegar-nome-do-usuario-com-apache--tomcat#1370633
o/
CONSEGUIIIIIIIII
AAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
\o/
Então, a resposta é isso mesmo que eu tava fazendo. Pelo que eu entendi, o Apache tem uma variável chamada “REMOTE_USER”.
O que o externalContext.getRemoteUser() faz é recuperar essa variável.
Aparentemente, o que faz o Apache setar essa variável é usar o “módulo” mod_auth_sspi.
Depois que eu “instalei” esse módulo, continuou dando erro pq tem que colocar a tag tomcatAuthentication=“false” no server.xml do tomcat. Se eu não fizer isso, o Apache faz uma autenticação e blz. Mas aí quando ele passa a requisição pro tomcat, o tomcat tenta fazer outra… aí que ele retorna null.
Então, no meu server.xml, ficou desse jeito
Daí agora, eu dou um
FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
e me retorna DOMINIO\USERNAME
Pronto.
Depois de duas semanas apanhando, posso continuar.
hehehehehehehe
Valeu!
[quote=BrZumba]CONSEGUIIIIIIIII
AAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
\o/
Então, a resposta é isso mesmo que eu tava fazendo. Pelo que eu entendi, o Apache tem uma variável chamada “REMOTE_USER”.
O que o externalContext.getRemoteUser() faz é recuperar essa variável.
Aparentemente, o que faz o Apache setar essa variável é usar o “módulo” mod_auth_sspi.
Depois que eu “instalei” esse módulo, continuou dando erro pq tem que colocar a tag tomcatAuthentication=“false” no server.xml do tomcat. Se eu não fizer isso, o Apache faz uma autenticação e blz. Mas aí quando ele passa a requisição pro tomcat, o tomcat tenta fazer outra… aí que ele retorna null.
Então, no meu server.xml, ficou desse jeito
Daí agora, eu dou um
FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
e me retorna DOMINIO\USERNAME
Pronto.
Depois de duas semanas apanhando, posso continuar.
hehehehehehehe
Valeu!
[/quote]
Parabéns!!!