Skip to content

Commit 5f6a83a

Browse files
committed
Add code from the meeting.
1 parent 470efd8 commit 5f6a83a

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/main/java/me/kavin/piped/server/handlers/auth/UserHandlers.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import me.kavin.piped.utils.RequestUtils;
2020
import me.kavin.piped.utils.obj.OidcData;
2121
import me.kavin.piped.utils.obj.OidcProvider;
22+
import me.kavin.piped.utils.obj.db.OidcUserData;
2223
import me.kavin.piped.utils.obj.db.User;
2324
import me.kavin.piped.utils.resp.*;
2425
import org.apache.commons.codec.digest.DigestUtils;
@@ -297,6 +298,14 @@ public static byte[] deleteUserResponse(String session, String pass) throws IOEx
297298
String hash = user.getPassword();
298299

299300
if (hash.isEmpty()) {
301+
302+
CriteriaBuilder cb = s.getCriteriaBuilder();
303+
CriteriaQuery<OidcUserData> cr = cb.createQuery(OidcUserData.class);
304+
Root<OidcUserData> root = cr.from(OidcUserData.class);
305+
cr.select(root).where(cb.equal(root.get("user"), user.getId()));
306+
307+
OidcUserData oidcUserData = s.createQuery(cr).uniqueResult();
308+
300309
//TODO: Get user from oidc table and lookup provider
301310
OidcProvider provider = Constants.OIDC_PROVIDERS.get(0);
302311
URI callback = URI.create(String.format("%s/oidc/%s/delete", Constants.PUBLIC_URL, provider.name));
@@ -310,7 +319,8 @@ public static byte[] deleteUserResponse(String session, String pass) throws IOEx
310319
.state(new State(state)).nonce(data.nonce).maxAge(0).build();
311320

312321

313-
return String.format("{\"redirect\": \"%s\"}", oidcRequest.toURI().toString()).getBytes();
322+
return mapper.writeValueAsBytes(mapper.createObjectNode()
323+
.put("redirect", oidcRequest.toURI().toString()));
314324
}
315325
if (!hashMatch(hash, pass))
316326
ExceptionHandler.throwErrorResponse(new IncorrectCredentialsResponse());
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package me.kavin.piped.utils.obj.db;
2+
3+
import jakarta.persistence.*;
4+
5+
@Entity
6+
@Table(name = "oidc_user_data")
7+
public class OidcUserData {
8+
9+
@Column(unique = true)
10+
@Id
11+
private String sub;
12+
13+
@OneToOne
14+
private User user;
15+
16+
private String provider;
17+
18+
19+
}

0 commit comments

Comments
 (0)