From f0eae82d9f0cb786f2dafb340c517e70c0e1c3b1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 28 Oct 2020 14:29:27 +0100 Subject: [PATCH] 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()