UserImageServlet.java
2.63 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package fi.insomnia.bortal.servlet;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.ejb.EJB;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.model.UserImage;
/**
* Servlet implementation class UploadServlet
*/
public class UserImageServlet extends GenericImageServlet {
/**
*
*/
private static final long serialVersionUID = -3359999630873773508L;
@EJB
private transient UserBeanLocal userbean;
@EJB
private transient PermissionBeanLocal permbean;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
// private final Pattern lhMatcher =
// Pattern.compile("^(10|127).[0-9.]*|(0:)*1%0");
private static final Logger logger = LoggerFactory.getLogger(UserImageServlet.class);
private static final Pattern URLPATTERN = Pattern.compile("([^./]+)");
// /dydata/(userimage|...)/stuff...
@Override
protected ImageMover getImagedata() {
ImageMover ret = new ImageMover();
Matcher matcher = URLPATTERN.matcher(super.request.getPathInfo());
List<String> urlparts = new ArrayList<String>();
logger.info("urlparts {}", urlparts);
while (matcher.find()) {
urlparts.add(matcher.group());
}
if (urlparts.isEmpty()) {
ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
} else if (urlparts.get(0).equals("userimage") && urlparts.size() > 2) {
int imageid = Integer.parseInt(urlparts.get(1));
UserImage image = userbean.findUserimageFORCE(imageid);
if (image != null)
{
ret.setData(image.getImageData());
ret.setImagetype(image.getMimeType());
}
}
if (ret.getImagetype() == null) {
ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
}
return ret;
}
// protected ImageMover getImagedata2() {
// ImageMover ret = new ImageMover();
// UserImage image =
// userbean.findUserimageFORCE(super.getIdParam("imageid"));
// if (image != null) { // &&
// // if (permbean.isCurrentUser(image.getUser()) ||
// // permbean.hasPermission(UserPermission.MODIFY) ||
// // lhMatcher.matcher(request.getLocalAddr()).matches())
// // {
// ret.setData(image.getImageData());
// ret.setImagetype(image.getMimeType());
// // }
// // else
// // {
// // ret.setResponse(HttpServletResponse.SC_FORBIDDEN);
// // }
//
// } else
// {
// ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
// }
// return ret;
//
// }
}