Posta o código inteiro que isso pode responder a pergunta inicial e ser util para mim tb.
Isso foi pra mim?
hehehehehe
Código do que?
Eu não fiz nada disso ainda… tava tentando descobrir como faz.
Ou vc tá falando dessa parte do sys.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 = $value"; } ?>
E 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!!!