This repository was archived by the owner on Aug 12, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathOAuthAccessor.scala
64 lines (53 loc) · 2.3 KB
/
OAuthAccessor.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
* Copyright 2010 WorldWide Conferencing, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.liftweb {
package oauth {
import net.liftweb.common._
final case class OAuthAccessor(oauthConsumer: OAuthConsumer, tokenSecret: Box[String], user: Box[OAuthUser]) {
def consumerSecret = oauthConsumer.consumerSecret
}
trait OAuthAccessorMeta
{
protected def oauthTokenMeta: OAuthTokenMeta
def fromAccessToken(message: OAuthMessage): Box[OAuthAccessor] = Empty /* {
message.requireParameters(OAuth.OAUTH_TOKEN)
oauthTokenMeta.find(message.getToken) match {
case Full(token) if token.hasExpired_? => throw OAuthProblemException(OAuth.Problems.TOKEN_EXPIRED)
case Full(token) if token.authorized.is == 1 && token.token_type == "access" => {
new OAuthAccessor(token.consumer, token.secret, token.user)
}
case Full(token) => throw OAuthProblemException(OAuth.Problems.PERMISSION_DENIED)
case _ => throw OAuthProblemException(OAuth.Problems.TOKEN_EXPIRED)
}
} */
def fromAuthorizedRequestToken(message: OAuthMessage): Box[OAuthAccessor] = Empty /* {
message.requireParameters(OAuth.OAUTH_TOKEN)
oauthTokenMeta.find(message.getToken) match {
case Full(token) if token.hasExpired_? => throw OAuthProblemException(OAuth.Problems.TOKEN_EXPIRED)
case Full(token) if token.authorized.is == 1 && token.token_type == "request" => {
new OAuthAccessor(token.consumer.obj.open_!, token.secret.is, token.userid.obj.open_!)
}
case Full(auth) => throw OAuthProblemException(OAuth.Problems.PERMISSION_DENIED)
case _ => throw OAuthProblemException(OAuth.Problems.TOKEN_EXPIRED)
}
}
*/
def apply(oauthConsumer: OAuthConsumer): Box[OAuthAccessor] = {
Full(new OAuthAccessor(oauthConsumer, Empty, Empty))
}
}
}
}