Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo
Commits
21772b2f
Commit
21772b2f
authored
Jan 08, 2013
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed #159
parent
0d7ef19f
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
81 additions
and
117 deletions
+81
-117
core/src/main/java/org/b3log/solo/filter/PageCacheFilter.java
.../src/main/java/org/b3log/solo/filter/PageCacheFilter.java
+6
-6
core/src/main/java/org/b3log/solo/filter/PermalinkFilter.java
.../src/main/java/org/b3log/solo/filter/PermalinkFilter.java
+4
-4
core/src/main/java/org/b3log/solo/model/Article.java
core/src/main/java/org/b3log/solo/model/Article.java
+5
-1
core/src/main/java/org/b3log/solo/processor/ArticleProcessor.java
.../main/java/org/b3log/solo/processor/ArticleProcessor.java
+61
-79
core/src/main/java/org/b3log/solo/util/Articles.java
core/src/main/java/org/b3log/solo/util/Articles.java
+4
-26
war/src/main/webapp/article-pwd.ftl
war/src/main/webapp/article-pwd.ftl
+1
-1
No files found.
core/src/main/java/org/b3log/solo/filter/PageCacheFilter.java
View file @
21772b2f
...
@@ -15,10 +15,10 @@
...
@@ -15,10 +15,10 @@
*/
*/
package
org
.
b3log
.
solo
.
filter
;
package
org
.
b3log
.
solo
.
filter
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.PrintWriter
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
javax.servlet.Filter
;
import
javax.servlet.Filter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterConfig
;
import
javax.servlet.FilterConfig
;
...
@@ -51,7 +51,7 @@ import org.json.JSONObject;
...
@@ -51,7 +51,7 @@ import org.json.JSONObject;
* Page cache filter.
* Page cache filter.
*
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.1.
0, Jul 16, 2012
* @version 1.0.1.
1, Jan 8, 2013
* @since 0.3.1
* @since 0.3.1
*/
*/
public
final
class
PageCacheFilter
implements
Filter
{
public
final
class
PageCacheFilter
implements
Filter
{
...
@@ -145,7 +145,7 @@ public final class PageCacheFilter implements Filter {
...
@@ -145,7 +145,7 @@ public final class PageCacheFilter implements Filter {
try
{
try
{
// If cached an article that has view password, dispatches the password form
// If cached an article that has view password, dispatches the password form
if
(
langPropsService
.
get
(
PageTypes
.
ARTICLE
.
getLangeLabel
()).
equals
(
cachedType
)
if
(
langPropsService
.
get
(
PageTypes
.
ARTICLE
.
getLangeLabel
()).
equals
(
cachedType
)
&&
cachedPageContentObject
.
has
(
PageCaches
.
CACHED_PWD
))
{
&&
cachedPageContentObject
.
has
(
PageCaches
.
CACHED_PWD
))
{
JSONObject
article
=
new
JSONObject
();
JSONObject
article
=
new
JSONObject
();
final
String
articleId
=
cachedPageContentObject
.
optString
(
PageCaches
.
CACHED_OID
);
final
String
articleId
=
cachedPageContentObject
.
optString
(
PageCaches
.
CACHED_OID
);
...
@@ -159,7 +159,7 @@ public final class PageCacheFilter implements Filter {
...
@@ -159,7 +159,7 @@ public final class PageCacheFilter implements Filter {
final
HttpServletResponse
httpServletResponse
=
(
HttpServletResponse
)
response
;
final
HttpServletResponse
httpServletResponse
=
(
HttpServletResponse
)
response
;
try
{
try
{
httpServletResponse
.
sendRedirect
(
Latkes
.
getServePath
()
httpServletResponse
.
sendRedirect
(
Latkes
.
getServePath
()
+
"/console/article-pwd"
+
articles
.
buildArticleViewPwdFormParameters
(
article
));
+
"/console/article-pwd?articleId="
+
article
.
optString
(
Keys
.
OBJECT_ID
));
return
;
return
;
}
catch
(
final
Exception
e
)
{
}
catch
(
final
Exception
e
)
{
httpServletResponse
.
sendError
(
HttpServletResponse
.
SC_NOT_FOUND
);
httpServletResponse
.
sendError
(
HttpServletResponse
.
SC_NOT_FOUND
);
...
@@ -184,7 +184,7 @@ public final class PageCacheFilter implements Filter {
...
@@ -184,7 +184,7 @@ public final class PageCacheFilter implements Filter {
final
String
cachedTitle
=
cachedPageContentObject
.
getString
(
PageCaches
.
CACHED_TITLE
);
final
String
cachedTitle
=
cachedPageContentObject
.
getString
(
PageCaches
.
CACHED_TITLE
);
LOGGER
.
log
(
Level
.
FINEST
,
"Cached value[key={0}, type={1}, title={2}]"
,
LOGGER
.
log
(
Level
.
FINEST
,
"Cached value[key={0}, type={1}, title={2}]"
,
new
Object
[]{
pageCacheKey
,
cachedType
,
cachedTitle
});
new
Object
[]{
pageCacheKey
,
cachedType
,
cachedTitle
});
statistics
.
incBlogViewCount
((
HttpServletRequest
)
request
,
(
HttpServletResponse
)
response
);
statistics
.
incBlogViewCount
((
HttpServletRequest
)
request
,
(
HttpServletResponse
)
response
);
...
...
core/src/main/java/org/b3log/solo/filter/PermalinkFilter.java
View file @
21772b2f
...
@@ -15,9 +15,9 @@
...
@@ -15,9 +15,9 @@
*/
*/
package
org
.
b3log
.
solo
.
filter
;
package
org
.
b3log
.
solo
.
filter
;
import
java.io.IOException
;
import
java.util.logging.Level
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
java.util.logging.Logger
;
import
java.io.IOException
;
import
javax.servlet.Filter
;
import
javax.servlet.Filter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterConfig
;
import
javax.servlet.FilterConfig
;
...
@@ -47,7 +47,7 @@ import org.json.JSONObject;
...
@@ -47,7 +47,7 @@ import org.json.JSONObject;
* Article/Page permalink filter.
* Article/Page permalink filter.
*
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.1.
6, May 17, 2012
* @version 1.0.1.
7, Jan 8, 2013
* @since 0.3.1
* @since 0.3.1
* @see org.b3log.solo.processor.ArticleProcessor#showArticle(org.b3log.latke.servlet.HTTPRequestContext,
* @see org.b3log.solo.processor.ArticleProcessor#showArticle(org.b3log.latke.servlet.HTTPRequestContext,
* javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
* javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
...
@@ -129,7 +129,7 @@ public final class PermalinkFilter implements Filter {
...
@@ -129,7 +129,7 @@ public final class PermalinkFilter implements Filter {
if
(
null
!=
article
&&
articles
.
needViewPwd
(
httpServletRequest
,
article
))
{
if
(
null
!=
article
&&
articles
.
needViewPwd
(
httpServletRequest
,
article
))
{
try
{
try
{
httpServletResponse
.
sendRedirect
(
Latkes
.
getServePath
()
httpServletResponse
.
sendRedirect
(
Latkes
.
getServePath
()
+
"/console/article-pwd"
+
articles
.
buildArticleViewPwdFormParameters
(
article
));
+
"/console/article-pwd?articleId="
+
article
.
optString
(
Keys
.
OBJECT_ID
));
return
;
return
;
}
catch
(
final
Exception
e
)
{
}
catch
(
final
Exception
e
)
{
httpServletResponse
.
sendError
(
HttpServletResponse
.
SC_NOT_FOUND
);
httpServletResponse
.
sendError
(
HttpServletResponse
.
SC_NOT_FOUND
);
...
@@ -153,7 +153,7 @@ public final class PermalinkFilter implements Filter {
...
@@ -153,7 +153,7 @@ public final class PermalinkFilter implements Filter {
* @see HTTPRequestDispatcher#dispatch(org.b3log.latke.servlet.HTTPRequestContext)
* @see HTTPRequestDispatcher#dispatch(org.b3log.latke.servlet.HTTPRequestContext)
*/
*/
private
void
dispatchToArticleOrPageProcessor
(
final
ServletRequest
request
,
final
ServletResponse
response
,
private
void
dispatchToArticleOrPageProcessor
(
final
ServletRequest
request
,
final
ServletResponse
response
,
final
JSONObject
article
,
final
JSONObject
page
)
final
JSONObject
article
,
final
JSONObject
page
)
throws
ServletException
,
IOException
{
throws
ServletException
,
IOException
{
final
HTTPRequestContext
context
=
new
HTTPRequestContext
();
final
HTTPRequestContext
context
=
new
HTTPRequestContext
();
context
.
setRequest
((
HttpServletRequest
)
request
);
context
.
setRequest
((
HttpServletRequest
)
request
);
...
...
core/src/main/java/org/b3log/solo/model/Article.java
View file @
21772b2f
...
@@ -19,7 +19,7 @@ package org.b3log.solo.model;
...
@@ -19,7 +19,7 @@ package org.b3log.solo.model;
* This class defines all article model relevant keys.
* This class defines all article model relevant keys.
*
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.1.
5, Apr 29, 2012
* @version 1.0.1.
6, Jan 8, 2013
* @since 0.3.1
* @since 0.3.1
*/
*/
public
final
class
Article
{
public
final
class
Article
{
...
@@ -56,6 +56,10 @@ public final class Article {
...
@@ -56,6 +56,10 @@ public final class Article {
* Key of update date.
* Key of update date.
*/
*/
public
static
final
String
ARTICLE_UPDATE_DATE
=
"articleUpdateDate"
;
public
static
final
String
ARTICLE_UPDATE_DATE
=
"articleUpdateDate"
;
/**
* Key of update time.
*/
public
static
final
String
ARTICLE_UPDATE_TIME
=
"articleUpdateTime"
;
/**
/**
* Key of tags.
* Key of tags.
*/
*/
...
...
core/src/main/java/org/b3log/solo/processor/ArticleProcessor.java
View file @
21772b2f
This diff is collapsed.
Click to expand it.
core/src/main/java/org/b3log/solo/util/Articles.java
View file @
21772b2f
...
@@ -15,8 +15,6 @@
...
@@ -15,8 +15,6 @@
*/
*/
package
org
.
b3log
.
solo
.
util
;
package
org
.
b3log
.
solo
.
util
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -25,7 +23,6 @@ import java.util.logging.Level;
...
@@ -25,7 +23,6 @@ import java.util.logging.Level;
import
java.util.logging.Logger
;
import
java.util.logging.Logger
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
javax.servlet.http.HttpSession
;
import
org.b3log.solo.model.Article
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.repository.*
;
import
org.b3log.latke.repository.*
;
import
org.b3log.latke.service.ServiceException
;
import
org.b3log.latke.service.ServiceException
;
...
@@ -33,6 +30,7 @@ import org.b3log.latke.user.UserService;
...
@@ -33,6 +30,7 @@ import org.b3log.latke.user.UserService;
import
org.b3log.latke.user.UserServiceFactory
;
import
org.b3log.latke.user.UserServiceFactory
;
import
org.b3log.latke.util.CollectionUtils
;
import
org.b3log.latke.util.CollectionUtils
;
import
org.b3log.latke.util.Strings
;
import
org.b3log.latke.util.Strings
;
import
org.b3log.solo.model.Article
;
import
org.b3log.solo.model.Common
;
import
org.b3log.solo.model.Common
;
import
org.b3log.solo.model.Preference
;
import
org.b3log.solo.model.Preference
;
import
org.b3log.solo.repository.ArticleRepository
;
import
org.b3log.solo.repository.ArticleRepository
;
...
@@ -47,7 +45,7 @@ import org.json.JSONObject;
...
@@ -47,7 +45,7 @@ import org.json.JSONObject;
* Article utilities.
* Article utilities.
*
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.2.
8, May 6, 2012
* @version 1.0.2.
9, Jan 8, 2013
* @since 0.3.1
* @since 0.3.1
*/
*/
public
final
class
Articles
{
public
final
class
Articles
{
...
@@ -69,26 +67,6 @@ public final class Articles {
...
@@ -69,26 +67,6 @@ public final class Articles {
*/
*/
private
UserService
userService
=
UserServiceFactory
.
getUserService
();
private
UserService
userService
=
UserServiceFactory
.
getUserService
();
/**
* Builds article view password form parameters with the specified article.
*
* @param article the specified article
* @return parameters string, for example,
* <pre>
* "?articleId=xxx&articleTitle=xxx&articlePermalink=xxx&articleAbstract=xxx"
* </pre>
* @throws UnsupportedEncodingException if can not encode the arguments
*/
public
String
buildArticleViewPwdFormParameters
(
final
JSONObject
article
)
throws
UnsupportedEncodingException
{
final
StringBuilder
parametersBuilder
=
new
StringBuilder
(
"?articleId="
).
append
(
article
.
optString
(
Keys
.
OBJECT_ID
)).
append
(
"&articleTitle="
).
append
(
URLEncoder
.
encode
(
article
.
optString
(
Article
.
ARTICLE_TITLE
),
"UTF-8"
)).
append
(
"&articlePermalink="
).
append
(
URLEncoder
.
encode
(
article
.
optString
(
Article
.
ARTICLE_PERMALINK
),
"UTF-8"
)).
append
(
"&articleAbstract="
).
append
(
URLEncoder
.
encode
(
article
.
optString
(
Article
.
ARTICLE_ABSTRACT
,
" "
),
"UTF-8"
));
return
parametersBuilder
.
toString
();
}
/**
/**
* Checks whether need password to view the specified article with the specified request.
* Checks whether need password to view the specified article with the specified request.
*
*
...
@@ -178,8 +156,8 @@ public final class Articles {
...
@@ -178,8 +156,8 @@ public final class Articles {
if
(
null
==
ret
)
{
if
(
null
==
ret
)
{
LOGGER
.
log
(
Level
.
WARNING
,
LOGGER
.
log
(
Level
.
WARNING
,
"Gets author of article failed, assumes the administrator is the author of this article[id={0}]"
,
"Gets author of article failed, assumes the administrator is the author of this article[id={0}]"
,
article
.
getString
(
Keys
.
OBJECT_ID
));
article
.
getString
(
Keys
.
OBJECT_ID
));
// This author may be deleted by admin, use admin as the author
// This author may be deleted by admin, use admin as the author
// of this article
// of this article
ret
=
userRepository
.
getAdmin
();
ret
=
userRepository
.
getAdmin
();
...
...
war/src/main/webapp/article-pwd.ftl
View file @
21772b2f
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<
#if
msg
??
>
<
#if
msg
??
>
<div>
${msg}
</div>
<div>
${msg}
</div>
</
#
if>
</
#
if>
<form
method=
"POST"
action=
"${s
taticS
ervePath}/console/article-pwd"
>
<form
method=
"POST"
action=
"${servePath}/console/article-pwd"
>
<label
for=
"pwdTyped"
>
访问密码:
</label>
<label
for=
"pwdTyped"
>
访问密码:
</label>
<input
type=
"password"
id=
"pwdTyped"
name=
"pwdTyped"
/>
<input
type=
"password"
id=
"pwdTyped"
name=
"pwdTyped"
/>
<input
type=
"hidden"
name=
"articleId"
value=
"${articleId}"
/>
<input
type=
"hidden"
name=
"articleId"
value=
"${articleId}"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment