[jboss-user] [JBoss Seam] - Re: Restrict
tony.herstell@gmail.com
do-not-reply at jboss.com
Wed Feb 14 17:35:40 EST 2007
| package nz.co.risingstars.content;
|
| import java.io.ByteArrayOutputStream;
| import java.io.IOException;
| import java.io.InputStream;
|
| import javax.servlet.ServletException;
| import javax.servlet.http.HttpServlet;
| import javax.servlet.http.HttpServletRequest;
| import javax.servlet.http.HttpServletResponse;
|
| import nz.co.risingstars.entities.Image;
|
| import org.jboss.seam.Component;
|
| /**
| * Serves images and other member content
| *
| * @author Shane Bryzak
| */
| public class ContentServlet extends HttpServlet {
|
| private static final String IMAGES_PATH = "/images";
|
| private byte[] noImage;
|
| public ContentServlet() {
| InputStream noImageFromStorage = getClass().getResourceAsStream("/images/no_image.png");
| if (noImageFromStorage != null) {
| ByteArrayOutputStream out = new ByteArrayOutputStream();
| byte[] buffer = new byte[512];
| try {
| int read = noImageFromStorage.read(buffer);
| while (read != -1) {
| out.write(buffer, 0, read);
| read = noImageFromStorage.read(buffer);
| }
|
| noImage = out.toByteArray();
| } catch (IOException e) {
| }
| }
| }
|
| @Override
| protected void doGet(HttpServletRequest request,
| HttpServletResponse response) throws ServletException, IOException {
|
| if (IMAGES_PATH.equals(request.getPathInfo())) {
| ContentController contentController = (ContentController) Component
| .getInstance(ContentControllerImpl.class);
|
| String id = request.getParameter("id");
| Image imageToFetch = null;
| if (id != null && !"".equals(id)) {
| imageToFetch = contentController.getImage(Long.parseLong(id));
| }
|
| String contentType = null;
| byte[] data = null;
|
| if (imageToFetch != null && imageToFetch.getThumbnail() != null && imageToFetch.getThumbnail().length > 0) {
| contentType = imageToFetch.getType();
| data = imageToFetch.getThumbnail();
| } else if (noImage != null) {
| contentType = "image/png";
| data = noImage;
| }
|
| if (data != null) {
| response.setContentType(contentType);
| }
| response.getOutputStream().write(data);
| response.getOutputStream().flush();
| }
| }
| }
|
|
| package nz.co.risingstars.content;
|
| import nz.co.risingstars.entities.Image;
|
| public interface ContentController
| {
| Image getImage(long imageId);
| }
|
|
| package nz.co.risingstars.content;
|
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| import nz.co.risingstars.entities.Image;
|
| import org.jboss.seam.annotations.Name;
|
| @Stateless
| @Name("contentController")
| public class ContentControllerImpl implements ContentController {
|
| @PersistenceContext
| private EntityManager em;
|
| public Image getImage(long imageId) {
| Image img = em.find(Image.class, imageId);
|
| // if (img == null || !Identity.instance().hasPermission("memberImage", "view", img))
| // return null;
| // else
| return img;
| }
| }
|
|
|
|
|
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4016700#4016700
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4016700
More information about the jboss-user
mailing list