Please find in attachment a new JSP a bit more flexible ...
I'm thinking that it could be integrated in Shindig container samples ...
A possible re-work could be to read the key provided by the
shindig.properties instead of a hard-coded one ....
--
Thomas Sauzedde
<%@ page import=" org.apache.shindig.common.crypto.BasicBlobCrypter,
org.apache.shindig.auth.BlobCrypterSecurityToken,
org.apache.shindig.common.util.Utf8UrlCoder"
%>
<jsp:useBean id="viewer" scope="session" class="java.lang.String" />
<jsp:useBean id="owner" scope="session" class="java.lang.String" />
<%-- PUT YOUR KEY HERE --%>
<%
String key = "PUT YOUR B64 KEY HERE";
%>
<%-- HANDLE Login form submission --%>
<%
if(null != request.getParameter("viewertxt") &&
request.getParameter("viewertxt").length() > 0){
viewer = request.getParameter("viewertxt");
session.setAttribute("viewer" , viewer);
}
if(null != request.getParameter("ownertxt") &&
request.getParameter("ownertxt").length() > 0){
owner = request.getParameter("ownertxt");
session.setAttribute("owner" , owner);
}
%>
<!DOCTYPE html>
<html>
<head>
<title>Sample: Simple Container</title>
<%
if( null != viewer && viewer.length() > 0 && null != owner && owner.length()
> 0){
%>
<%
String gadgetUrl =
"http://localhost:8080/gadgets/files/samplecontainer/examples/SocialHelloWorld.xml";
if(null!= request.getParameter("gadgeturl") &&
request.getParameter("gadgeturl").length() > 0){
gadgetUrl = request.getParameter("gadgeturl");
}
if(null!= request.getParameter("freegadgeturl") &&
request.getParameter("freegadgeturl").length() > 0){
gadgetUrl = request.getParameter("freegadgeturl");
}
BasicBlobCrypter blobCrypter = new BasicBlobCrypter(key.getBytes());
BlobCrypterSecurityToken st = new BlobCrypterSecurityToken(blobCrypter,
"default", "localhost");
st.setViewerId(viewer);
st.setOwnerId(owner);
st.setAppUrl(gadgetUrl);
String token = Utf8UrlCoder.encode(st.encrypt());
%>
<!-- default container look and feel -->
<link rel="stylesheet" href="gadgets.css">
<script type="text/javascript" src="../../js/rpc.js?c=1&debug=1"></script>
<script type="text/javascript" src="cookies.js"></script>
<script type="text/javascript" src="util.js"></script>
<script type="text/javascript" src="gadgets.js"></script>
<script type="text/javascript" src="cookiebaseduserprefstore.js"></script>
<script type="text/javascript">
var specUrlcontacts = '<%= gadgetUrl %>';
var stoken = '<%= token %>';
// This container lays out and renders gadgets itself.
function renderGadgets() {
var gadget = gadgets.container.createGadget({specUrl: specUrlcontacts,
secureToken: stoken});
gadgets.container.addGadget(gadget);
gadgets.container.layoutManager.setGadgetChromeIds(['gadget-chrome-x']);
gadgets.container.renderGadget(gadget);
};
</script>
</head>
<body onLoad="renderGadgets()">
<h2>Sample: Simple Container</h2>
<div id="gadget-chrome-x" class="gadgets-gadget-chrome"></div>
</body>
</html>
<%
} else {
%>
<script type="text/javascript">
function resetText(){
document.getElementById('freegadgeturl').value='';
}
function resetSelect(){
document.getElementById('gadgeturl').options[0].selected='true';
}
</script>
</head>
<body>
<form method="get"
action="http://localhost:8080/gadgets/files/container/samplesecuretoken.jsp">
Viewer : <input type="text" name="viewertxt" value="john.doe"/><br/>
Owner : <input type="text" name="ownertxt" value="john.doe"/><br/>
Shortcut Gadget URL :
<select id='gadgeturl' name="gadgeturl" onchange="resetText();">
<option value="">----</option>
<option
value="http://localhost:8080/gadgets/files/samplecontainer/examples/SocialActivitiesWorld.xml">SocialActivitiesWorld.xml</option>
<option
value="http://localhost:8080/gadgets/files/samplecontainer/examples/SocialHelloWorld.xml">SocialHelloWorld.xml</option>
<option
value="http://localhost:8080/gadgets/files/samplecontainer/examples/getFriendsHasApp.xml">getFriendsHasApp.xml</option>
<option
value="http://localhost:8080/gadgets/files/samplecontainer/examples/oauth.xml">oauth.xml</option>
</select>
OR
Full Gadget URL : <input id="freegadgeturl" type="text"
name="freegadgeturl"
value="http://localhost:8080/gadgets/files/samplecontainer/examples/SocialHelloWorld.xml"
size="50" onchange="resetSelect();"/><br/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
<%
}
%>