Skip to content
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

Closed
wants to merge 14 commits into from

Conversation

drewwills
Copy link
Contributor

@drewwills drewwills commented Jun 7, 2016

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...

  • Grab the code and merge it into your local dev portal
  • Code review this change, per usual

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...

  • We don't depend on SNAPSHOT builds in uPortal; that will need to be changed
  • This dependency is not available in Maven Central

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 the springVersion property to 3.2.9.RELEASE in gradle.properties.

… your local portal; work remains to be done on this prototype; DO NOT MERGE\!
@andrewstuart
Copy link
Contributor

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.

@andrewstuart
Copy link
Contributor

And another in Go, just for funsies.

@bpowell, You might be interested in this topic based on some of our discussions at Open Apereo. :-)

@andrewstuart
Copy link
Contributor

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;

@drewwills
Copy link
Contributor Author

drewwills commented Jun 9, 2016

Nice @andrewstuart!

Adding 'Soffit Connector' as one of the radio options on the first screen after 'Register New Portlet' is on my list.

@andrewstuart
Copy link
Contributor

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).

@andrewstuart
Copy link
Contributor

andrewstuart commented Jun 11, 2016

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.

@bjagg
Copy link
Member

bjagg commented Jun 11, 2016

I think JWT would address the security concern. It's an open standard with implementations in lots of languages.

@drewwills
Copy link
Contributor Author

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.

@andrewstuart
Copy link
Contributor

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:

Heads up @andrewstuart https://github.com/andrewstuart -- I committed &
pushed updates to the data model. The examples you have that rely on a
username will need a slight adjustment.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#665 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/ACg1EeQM3_0F9slSDQUUnmcU8Q3UH3biks5qNAM7gaJpZM4Iwd1u
.

Andrew Stuart

…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
…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
…offit'; removing several other mentions of the word 'portlet' from everything EXCEPT the Soffit Connector (which is a portlet)
@drewwills
Copy link
Contributor Author

This PR is superseded by the uPortal 5 Overhaul PR, which includes Soffit support.

#715

@drewwills drewwills closed this Sep 6, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants