From bdfed579424cc258205b1b695e43b95b73e39f40 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 27 Oct 2020 18:21:45 +0100 Subject: [PATCH 1/3] Script to get token - checkpoint --- .gitignore | 5 +++++ pom.xml | 33 +++++++++++++++++++++++++++------ token.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 6 deletions(-) create mode 100755 token.py diff --git a/.gitignore b/.gitignore index a2a3040..41c11c4 100755 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,8 @@ build/ ### VS Code ### .vscode/ + + +### Python ### +__pycache__ +.pytest_cache \ No newline at end of file diff --git a/pom.xml b/pom.xml index 790c301..08f48fe 100755 --- a/pom.xml +++ b/pom.xml @@ -2,11 +2,11 @@ 4.0.0 - org.springframework.boot - spring-boot-starter-parent - 2.2.2.RELEASE - - + org.springframework.boot + spring-boot-starter-parent + 2.2.2.RELEASE + + com.plannaplan backend @@ -75,10 +75,31 @@ maven-project-info-reports-plugin 3.0.0 + + org.apache.maven.plugins + maven-antrun-plugin + 1.8 + + + generateSources + generate-sources + + + + + + + + + run + + + + - + buisnesslogic restservice diff --git a/token.py b/token.py new file mode 100755 index 0000000..45889d7 --- /dev/null +++ b/token.py @@ -0,0 +1,35 @@ +import webbrowser +from http.server import BaseHTTPRequestHandler, HTTPServer, SimpleHTTPRequestHandler +import urllib.parse as urlparse +from urllib.parse import parse_qs +import pyperclip +import sys +# replace with your own http handlers + + +class S(BaseHTTPRequestHandler): + def _set_response(self): + self.send_response(200) + self.send_header('Content-type', 'text/html') + self.end_headers() + + def do_GET(self): + parsed = urlparse.urlparse(str(self.path)) + ticket = str(parse_qs(parsed.query)['ticket'][0]) + print(ticket) + pyperclip.copy(ticket) + self._set_response() + self.wfile.write("Token copied to clipboard".format().encode('utf-8')) + + +def wait_for_request(server_class=HTTPServer, + handler_class=S): + server_address = ('localhost', 3000) + httpd = server_class(server_address, handler_class) + return httpd.handle_request() + + +url = 'https://cas.amu.edu.pl/cas/login?service=http://localhost:3000&locale=pl' + +webbrowser.open_new_tab(url) +wait_for_request() From f0eae82d9f0cb786f2dafb340c517e70c0e1c3b1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 28 Oct 2020 14:29:27 +0100 Subject: [PATCH 2/3] Added script to accessing token more efficient way --- README.md | 11 +++++++++++ token.py => gettoken.py | 16 ++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) rename token.py => gettoken.py (72%) diff --git a/README.md b/README.md index f63f125..88386c8 100755 --- a/README.md +++ b/README.md @@ -20,11 +20,22 @@ server.port=1285 ``` Następnym krokiem jest odpalenie poniższych komend w terminalu. + ``` cd restservice mvn spring-boot:run ``` +## Token + +Żeby tesotwać API wpełni potrzebny nam jest token który otrzymujemy na podstawie ticketa z systemu autoryzacyjnego **CAS**. Z tego powodu system autoryzacji działa inaczej niż w "książkowych" restowych aplikacjach i np Postman za nas jej nie dokona. Musimy mu podać już uzyskany token. Aby łatwo go uzyskać odpal skrypt + +``` +python gettoken.py +``` + +Na koniec w przęglądarce dostaniesz w odpowiedzi token. W samym pliku można zmienić porty aplikacji jeśli to potrzebne. + ## Packaging Zeby spakowac apke do `jara` wystarcza dwie komendy zaczynajac z glownego katalogu projektu diff --git a/token.py b/gettoken.py similarity index 72% rename from token.py rename to gettoken.py index 45889d7..31b18da 100755 --- a/token.py +++ b/gettoken.py @@ -2,9 +2,11 @@ import webbrowser from http.server import BaseHTTPRequestHandler, HTTPServer, SimpleHTTPRequestHandler import urllib.parse as urlparse from urllib.parse import parse_qs -import pyperclip import sys -# replace with your own http handlers +import requests as r + +API_ADDRESS = "http://localhost:1285" +PORT = 3000 class S(BaseHTTPRequestHandler): @@ -17,19 +19,21 @@ class S(BaseHTTPRequestHandler): parsed = urlparse.urlparse(str(self.path)) ticket = str(parse_qs(parsed.query)['ticket'][0]) print(ticket) - pyperclip.copy(ticket) + response = r.get(API_ADDRESS + "/token?ticket=" + ticket) self._set_response() - self.wfile.write("Token copied to clipboard".format().encode('utf-8')) + self.wfile.write("Your token: {}".format( + response.text).encode('utf-8')) def wait_for_request(server_class=HTTPServer, handler_class=S): - server_address = ('localhost', 3000) + server_address = ('localhost', PORT) httpd = server_class(server_address, handler_class) return httpd.handle_request() -url = 'https://cas.amu.edu.pl/cas/login?service=http://localhost:3000&locale=pl' +url = 'https://cas.amu.edu.pl/cas/login?service=http://localhost:' + \ + str(PORT) + '&locale=pl' webbrowser.open_new_tab(url) wait_for_request() From 933e09172b9299933b3df8b4f23cec5dc4704ede Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 28 Oct 2020 14:30:51 +0100 Subject: [PATCH 3/3] removed unused plugin --- pom.xml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/pom.xml b/pom.xml index 08f48fe..c450fc3 100755 --- a/pom.xml +++ b/pom.xml @@ -75,27 +75,6 @@ maven-project-info-reports-plugin 3.0.0 - - org.apache.maven.plugins - maven-antrun-plugin - 1.8 - - - generateSources - generate-sources - - - - - - - - - run - - - -