-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WiP] Add the Soffit prototype to your dev environment; DO NOT MERGE! #665
Conversation
… your local portal; work remains to be done on this prototype; DO NOT MERGE\!
Took me a while to realize that portlets are added as "Portlet > /uportal > Soffit Connector" rather than a separate item in the "Register Portlet" radio list. But anyway, I put up a quick NodeJS POC that just returns some static(ish) HTML with the soffit request JSON spat out in the body. |
And another in Go, just for funsies. @bpowell, You might be interested in this topic based on some of our discussions at Open Apereo. :-) |
And since I'm having fun with this... while true; do nc -l 8082 <<EOF
HTTP/1.1 200 OK
X-Powered-By: $SHELL
<h1>Hello World from $SHELL</h1>
EOF
done; |
Nice @andrewstuart! Adding 'Soffit Connector' as one of the radio options on the first screen after 'Register New Portlet' is on my list. |
In case anybody's following, I've updated the go example to include some remote XHR data, queried via json, a Dockerfile, and kubernetes Deployment, Service, and Ingress (necessary to expose externally and be able to grab the JSON via xhr). |
So I've added JWT generation to the go example (which depends on drewwills/Soffit#3) as well as validation, using RSA256, meaning it can be viewed by cut/pasting (from dev tools) at jwt.io and validated by pasting in the public key spit out via stdout. In the future, I'd love to see JWT generated by uPortal and used for all soffit requests (one per user login session) as part of the JSON request API. It's a very simple format and a good choice for the Identity and Role assertions that can be authenticated cryptographically. |
I think JWT would address the security concern. It's an open standard with implementations in lots of languages. |
Heads up @andrewstuart -- I committed & pushed updates to the data model. The examples you have that rely on a username will need a slight adjustment. |
Sweet! I'll have to see what else I can throw into my example now. :-) On Sat, Jun 18, 2016, 7:39 AM Drew Wills notifications@github.com wrote:
|
…payloadClass' portlet preference to the Soffit Connector portlet in portlet.xml for the purpose of backwards compatibility with remote soffit endpoints; provide a default equal to the current version (v1_0) so users can see what the default is in the Portlet Manager
…ler.RESPONSE_CACHE in ehcache.xml to support caching in the SoffitConnectorController
…ibutes from Person Directory
…oup affiliations from GaP
…ta from the MarketplacePortletDefinition
…ready been replaced by the new (encrypted JWT HTTP headers)
…vider; moving the Definition out of the JSON Post into the JWT HTTP header data model
…emoved in favor of JWTs as HTTP headers)
…offit'; removing several other mentions of the word 'portlet' from everything EXCEPT the Soffit Connector (which is a portlet)
This PR is superseded by the uPortal 5 Overhaul PR, which includes Soffit support. |
I'm being asked about how to run the Soffit prototype by colleagues who would like to try out the demos and building soffits of their own. I would like to leave this delta here as an easy way to...
This change is definitely work-in-progress (WiP); it's not ready to be merged into master.
Example Soffit widgets here: https://github.com/drewwills/soffit-samples
Documentation for creating your own soffits here: https://github.com/drewwills/Soffit
Some Additional Instructions
This delta declares a dependency on Soffit v. 0.9.0-SNAPSHOT. Clearly...
You will need to clone the Soffit project and perform a
gradle clean install
on it. But before you do that -- I have been building Soffit with Spring 3 for uPortal (Spring 4 for the soffits themselves). Change thespringVersion
property to3.2.9.RELEASE
in gradle.properties.