Skip to content

Commit 464b701

Browse files
committed
Add credential offer display
1 parent f62e618 commit 464b701

File tree

3 files changed

+56
-3
lines changed

3 files changed

+56
-3
lines changed

src/main/java/com/authlete/jaxrs/server/api/CredentialOfferPageModel.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,23 @@
2222
import java.net.URLEncoder;
2323
import java.util.Base64;
2424
import java.util.Map;
25-
import java.util.function.Consumer;
2625
import javax.imageio.ImageIO;
2726
import com.authlete.common.dto.CredentialOfferCreateRequest;
2827
import com.authlete.common.dto.CredentialOfferInfo;
2928
import com.authlete.common.types.User;
3029
import com.authlete.jaxrs.AuthorizationPageModel;
3130
import com.authlete.jaxrs.server.util.ExceptionUtil;
3231
import com.authlete.jaxrs.server.util.ProcessingUtil;
32+
import com.google.gson.JsonElement;
33+
import com.google.gson.JsonParser;
3334
import com.google.zxing.BarcodeFormat;
3435
import com.google.zxing.WriterException;
3536
import com.google.zxing.client.j2se.MatrixToImageWriter;
3637
import com.google.zxing.common.BitMatrix;
3738
import com.google.zxing.qrcode.QRCodeWriter;
39+
import com.nimbusds.jose.shaded.gson.Gson;
40+
import com.nimbusds.jose.shaded.gson.GsonBuilder;
41+
import com.nimbusds.jose.shaded.gson.JsonParseException;
3842

3943

4044
/**
@@ -73,6 +77,7 @@ public class CredentialOfferPageModel extends AuthorizationPageModel
7377
private CredentialOfferInfo info;
7478
private String credentialOfferLink;
7579
private String credentialOfferQrCode;
80+
private String credentialOfferContent;
7681
private String credentialOfferUriLink;
7782
private String credentialOfferUriQrCode;
7883

@@ -143,6 +148,14 @@ private String asQrCode(final String text) throws IOException, WriterException
143148
}
144149

145150

151+
private String prettifyJson(final String json)
152+
{
153+
final Gson gson = new GsonBuilder().setPrettyPrinting().create();
154+
final JsonElement je = JsonParser.parseString(json);
155+
return gson.toJson(je);
156+
}
157+
158+
146159
public CredentialOfferCreateRequest toRequest(final User user)
147160
{
148161
return new CredentialOfferCreateRequest()
@@ -280,6 +293,15 @@ public void setInfo(CredentialOfferInfo info)
280293
{
281294
throw ExceptionUtil.internalServerErrorException("Can't generate QR code.");
282295
}
296+
297+
this.credentialOfferContent = info.getCredentialOffer();
298+
299+
try
300+
{
301+
this.credentialOfferContent = prettifyJson(this.credentialOfferContent);
302+
}
303+
catch (JsonParseException ignored)
304+
{}
283305
}
284306

285307

@@ -307,6 +329,18 @@ public void setCredentialOfferQrCode(String credentialOfferQrCode)
307329
}
308330

309331

332+
public String getCredentialOfferContent()
333+
{
334+
return credentialOfferContent;
335+
}
336+
337+
338+
public void setCredentialOfferContent(String credentialOfferContent)
339+
{
340+
this.credentialOfferContent = credentialOfferContent;
341+
}
342+
343+
310344
public String getCredentialOfferUriLink()
311345
{
312346
return credentialOfferUriLink;

src/main/webapp/WEB-INF/template/credential-offer.jsp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,18 @@
155155
<c:if test="${model.credentialOfferQrCode != null}">
156156
<h5>Credential offer</h5>
157157
<a href="${model.credentialOfferLink}">
158-
<img src="data:image/png;base64,${model.credentialOfferQrCode}"/>
158+
<img src="data:image/png;base64,${model.credentialOfferQrCode}">
159159
</a>
160160
<br/>
161+
<div class="indent">
162+
<pre><code>${model.credentialOfferContent}</code></pre>
163+
</div>
164+
<br/>
161165
</c:if>
162166

163167
<c:if test="${model.credentialOfferUriQrCode != null}">
164168
<h5>Credential offer URI</h5>
165-
<a href="${model.credentialOfferLink}">
169+
<a href="${model.credentialOfferUriLink}">
166170
<img src="data:image/png;base64,${model.credentialOfferUriQrCode}"/>
167171
</a>
168172
<br/>

src/main/webapp/css/authorization.css

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,18 @@ input {
193193
#deny-button:active {
194194
background-color: red;
195195
}
196+
197+
pre {
198+
background: #f4f4f4;
199+
border: 1px solid #ddd;
200+
border-left: 3px solid #33b0f3;
201+
color: #666;
202+
page-break-inside: avoid;
203+
font-family: monospace;
204+
margin-bottom: 1.6em;
205+
max-width: 60%;
206+
overflow: auto;
207+
padding: 1em 1.5em;
208+
display: block;
209+
word-wrap: break-word;
210+
}

0 commit comments

Comments
 (0)