7
votes

Comment se connecter dans le site Web à l'aide de Java

Je veux accéder à certaines pages de site Web https://myoffice.bt.com qui nécessite une authentification de l'utilisateur en utilisant Java. Nous devons vous connecter d'abord pour accéder à des pages. J'ai un code suivant après le code suivant. XXX PRE>

Mais il donne des erreurs suivantes. P>

Exception in thread "main" java.lang.IllegalArgumentException: Entity enclosing requests cannot be redirected without user intervention
 at org.apache.commons.httpclient.methods.EntityEnclosingMethod.setFollowRedirects(Unknown Source)
 at root.Url.main(Url.java:30)


1 commentaires

Vous pouvez indenter votre code avec quatre espaces ou envelopper les balises , pour les formater pour le code.


3 Réponses :


10
votes

Premier - veuillez ne pas nommer votre postMethod code> variable Obtenez code>.

Deuxièmement, essayez ceci: p>

Segment=btb.hub
SubSegment=
searchType=0
searchPlatform=BEA
lob=btb.hub
queryText=
searchText=
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$UserName=your@email.com
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$PWD=yourpwd
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$RememberMe=on
USER=your@email.com
PASSWORD=yourpwd
SMENC=ISO-8859-1
SMLOCALE=US-EN
userFirstLoginUrl=https://myoffice.bt.com/ManageBusinessApplications/SecretQA.aspx
PrivateLoginSuccessUrl=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.mya
PublicLoginSuccessUrl=https://myoffice.bt.com/sm/createsession.aspx?siteArea=btb.mya
target=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.mya&TARGET=https%3a%2f%2fmyoffice.bt.com%2fdefault.aspx (hidden)
submitStatus=
smauthreason=
smagentname=
postpreservationdata=
AnonUserName=anon@myoffice.bt.com
authMode=SITEMINDER
smUrl=https://myoffice.bt.com/siteminderagent/forms/login.fcc
notSMUrl=https://myoffice.bt.com/default.aspx
smIdentifier=1


1 commentaires

Merci d'avoir répondu. Voici le code modifié, mais cela me renvoie à nouveau à la page de connexion.



1
votes

Si ce site Web utilise l'authentification Siteminder, vous ne pourrez pas vous connecter, comme ça. Siteminder utilise des cookies pour identifier des sessions authentifiées. Ces cookies ne sont valables que tant que votre session est vivante. Si vous n'êtes pas connecté, le serveur vous redirige vers la page de connexion Siteminder (d'où la redirection). Donc, ce que vous aurez besoin de faire est de suivre la redirection, envoyez vos informations d'identification (nom d'utilisateur / mot de passe), puis suivez la redirection à nouveau, envoyant les cookies reçus.

J'ai enregistré des sessions pour des tests de régression à l'aide de la meuleuse ( http://grinder.sourceforge.net/), et il a pu se connecter automatiquement au site Web de Siteminder protégé! Il est donc certainement possible, mais vous devrez faire un peu plus que simplement envoyer une demande HTTP ...

La meilleure solution serait une autre sorte d'authentification, comme une authentification basée sur le certificat (mais bien sûr, cela doit également être configuré sur le côté serveur, il peut donc ne pas être une option dans ce cas). Pourquoi ne pas demander à BT s'ils fournissent d'autres méthodes d'authentification?

edit: Je viens de trouver ceci: http : //www.codeproject.com/kb/ip/siteminderhttpwebrequest.aspx Le code source est dans VB, mais l'article est excellent, et il ne devrait pas être de problème de traduire le code VB en Java ...; -)


0 commentaires

1
votes

Version Java: Fonctionne bien avec les ressources protégées SiteMinder, testées avec les communes httpClient 4.3.3 xxx


0 commentaires