#!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; use HTML::TreeBuilder; use HTML::Tree; use Getopt::Long; use HTTP::Cookies; my %CONF = ( username => 'admin', password => 'geoserver', ); GetOptions( \%CONF, "username=s", "password=s" )or die "Bad options"; my $netloc = "193.5x.6x.15x:8080"; my $url = "http://$netloc/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.GeoServerLoginPage"; my $cookie_jar = HTTP::Cookies->new; my $agent = WWW::Mechanize->new( cookie_jar => $cookie_jar ); $agent->agent('User-Agent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0'); # auth $agent->get($url); die $agent->res->status_line unless $agent->success; $agent->set_fields(%CONF); $agent->submit; die $agent->res->status_line unless $agent->success; print $cookie_jar->as_string; # adding data store $url = "http://$netloc/geoserver/web?wicket:bookmarkablePage=:org.geoserver.web.data.store.NewDataPage"; my $content = $agent->get($url); die $agent->res->status_line unless $agent->success; my $tree = HTML::Tree->new(); $tree->parse($content); print $agent->content; # storeform $url = "http://$netloc/geoserver/web/?wicket:interface=:5:storeForm::IFormSubmitListener::"; my $content = $agent->post($url); die $agent->res->status_line unless $agent->success; my $tree = HTML::Tree->new(); $tree->parse($content); print $agent->content; # newdatapage $url = "http://$netloc/geoserver/web/?wicket:interface=:6::::"; my $ref = "http://$netloc/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.data.store.NewDataPage"; my $content = $agent->get( $url, referer => $ref); die $agent->res->status_line unless $agent->success; my $tree = HTML::Tree->new(); $tree->parse($content); print $agent->content;